嵌入式工程师学习第一天

        今天学了一些c语言的输入输出操作,运算符和表达式和一部分控制结构。在这之前我也学习了Ubuntu的操作和vim的三种模式。下面是今天的思维导图

第一天的2个作业:

1.输入2个整数,求这两个正整数的最大公约数和最小公倍数。

        我用的方法是用while循环求最小公倍数,for循环求最大公约数,之后才知道可以只求一个数就能推出另一个数,最小公倍数= (num1 * num2)/  最大公约数,下面是代码:

#include <stdio.h> 

int main(int argc, const char *argv[])
{
	int num1,num2,num3,max,min;
	printf("请输入2个整数\n");
	scanf("%d %d",&num1,&num2);
	getchar();
	if(num1 > num2){
		num3 = num2;
		int w = num1;
		int n = 2;
		while(1)
		{
			if(w % num2 == 0){
				min = w;
				break;
			}else{
				w = num1*n;
				n++;
			}
		}
	}else{
		num3 = num1;
		int w2 = num2;
		int n2 = 2;
		while(1)
		{
			if(w2 % num1 == 0){
				min = w2;
				break;
			}else{
				w2 = num2*n2;
				n2++;
			}
		}
	}
	for(int i = 2; i < num3+1; i ++){
		if(i > num3 / 2 && i < num3){
			i = num3 - 1;
			continue;
		}
		if(num1 % i == 0 && num2 % i == 0){
			max = i;
		}
	}

	printf("最大公约数为%d,最小公倍数为%d\n",max,min);
	return 0;
}

2.给定一个整数,判断它能否被3,5,7整除,并输出以下信息:

1、能同时被3,5,7整除(直接输出3 5 7,每个数中间一个空格);

2、只能被其中两个数整除(输出两个数,小的在前,大的在后。例如:3 5或者3 7或者5 7,中间用空格分隔);

3、只能被其中一个数整除(输出这个除数);

4、不能被任何数整除,输出小写字符‘n’,不包括单引号。

【输入】输入一行,包括一个整数。

【输出】输出一行,按照描述要求给出整数被3,5,7整除的情况。

【输入样例】

105

【输出样例】

3 5 7

        本题我是运用了if,else的嵌套条件判断来写的,但是这样太麻烦了,老师最后指出只需要if就可以了,在if(条件判断)之后就能输出这个数字,如果不满足条件就不会输出,代码量减少了很多,但是这样会不灵活,输出有些别扭,下面的代码是我原本的代码。

#include <stdio.h> 

int main(int argc, const char *argv[])
{
	int num;
	printf("请输入一个数\n");
	scanf("%d",&num);

	if(num % 3 == 0)
	{
		if(num % 5 == 0){
			if(num % 7 == 0){
				printf("3 5 7\n");
			}else{
				printf("3 5\n");
			}
		}else{
			if(num % 7 == 0){
				printf("3 7\n");
			}else{
				printf("3\n");
			}
		}
	}else{
		if(num % 5 == 0){
			if(num % 7 == 0){
				printf("5 7\n");
			}else{
				printf("5\n");
			}
		}else{
			if(num % 7 == 0){
				printf("7\n");
			}else{
				printf("n\n");
			}
		}
	}

	return 0;
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值