作业实例-

输入两个正整数m和n,求其最大公约数和最小公倍数。

#include <stdio.h>

int main()
{
	int m,n,i,gcd = 1,lcm = 0;
	
	printf("请输入两个正整数m和n:\n");
	scanf("%d%d",&m,&n);
	
	for(i = 1;i <= m && i <= n;i++){
		if(m % i == 0 && n % i == 0){
			gcd = i;
		}
	}
	
	lcm = (m * n) / gcd;
	
	printf("最大公约数是%d\n",gcd);
	printf("最小公倍数是%d\n",lcm);
	
	
	return 0;
}

对10个数组元素依次赋值为0,1,2,3,4,5,6,7,8,9,要求按逆序输出

#include <stdio.h>

int main()
{
	int array[10];
	int i;
	
	for(i = 0;i < 10;i++){//用for循环对数组进行初始化
		array[i] = i;
	}

	puts("数组初始化完毕");
	for(i = 0;i < 10;i++){//输出正序数组
		printf("%d ",array[i]);
	}

	printf("\n");
	puts("下面进行逆序");
	for(i = 9;i >= 0;i--){//输出逆序数组
		printf("%d ",array[i]);
	}
	
	return 0;
}

斐波那契数列

#include <stdio.h>

int main()
{
    int arr[10];
    int i;
    int arrSize;
    arrSize = sizeof(arr)/sizeof(arr[0]);
    
    arr[0] = 0;
    arr[1] = 1;

    for(i = 2;i < arrSize;i++){
        arr[i] = arr[i-1] + arr[i-2];//斐波那契数列的核心算法
    }
    
    for(i = 0;i < arrSize;i++){//注意i = 0,因为要从第一个元素开始输出,下标为0
       printf("%d ",arr[i]);
    }

    puts("done\n");
    return 0;
}

冒泡排序法(从大到小)

#include <stdio.h>

int main()
{
    int arr[] = {12,8,13,9,1536,46,3456,23,23};
    int i;
    int j;
    int tmp;
    int len = sizeof(arr)/sizeof(arr[0]);

    for(i = 0;i < len -1;i++){
        for(j = 0;j < len - i - 1;j++){//冒泡排序主要理解为什么J的界限是len-i-1
                                       //靠画图辅助理解最佳
            if(arr[j] < arr[j+1]){
                tmp = arr[j+1];
                arr[j+1] = arr[j];
                arr[j] = tmp;
            }
        }
    }
    
    for(i = 0;i < len -1;i++){
        printf("%d ",arr[i]);
    }

    return 0;
}

从小到大只需将 if(arr[j] < arr[j+1])中的小于号改成大于号即可

简单排序法(从大到小)

#include <stdio.h>

int main()
{
    int arr[] = {12,8,13,9,1536,46,3456,23,23};
    int i;
    int j;
    int tmp;

    for(i = 0;i < len-1;i++){
        for(j = i+1;j < len;j++){//简单排序主要理解这一步,取的是轮数对应下标数的后一个元素
                                 //因为不可能和自身比较
            if(arr[i] < arr[j]){
                tmp = arr[j];
                arr[j] = arr[i];
                arr [i] = tmp;
            }
        }
    }

    for(i = 0;i < len;i++){
        printf("%d ",arr[i]);
    }

    return 0;
}

 

同样,从小到大只需将 if(arr[i] < arr[j])中的小于号改成大于号即可

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值