C语言的小程序的解析,帮我分析下吧,大虾们!

C语言的小程序的解析,帮我分析下吧,大虾们!,第1张

n%10 是n除以10取余数 如果n=12那么n%10=2

因为你定义的n是INT类型的,所以输出n%10后,它执行n=n/10,正因为N是INT类型的,所以N/10是取整数部分的,如果N=13,那么N/10=1

当你输入小于0的N时,它不满足WHILE条件,所以一次都不循环

当你输入大于0的N时,它才开始循环,一旦N小于10了,它就跳出循环了

因为N小于10,那么它除以10的结果的整数部分一定为0,就不满足WHILE的条件了

现在懂了吗?

最小公倍数的方法:两数相乘除以最小公倍数

最大公约数的方法:两个数求最大公约数,可以用辗转相除法。始终用较大数除以较小数,然后用余数代替较大数。整除时的除数就是最大公约数。

#include "stdio.h"

void main()

{

int a,b,num1,num2,temp

printf("Please input two numbers:\n")

scanf("%d,%d",&num1,&num2)

if(num1<num2)

{

temp = num1

num1 = num2

num2 = temp

}

a = num1

b = num2

while(b!=0)

{

temp = a%b //取模,即取余数

a=b

b=temp

}

printf("最大公约数为:%d\n",a)

printf("最小公倍数为:%d\n",num1*num2/a)

}

先说一下什么是素数,素数就是所说的质数,质数是指除1和他本身外,其他的数都不能整除的数。

下面说一下代码。

这个程序的意义是输出2-50以内的所有的质数。

外循环,是2-50以内的各个数,内循环:从2开始依次判断外循环所得到的那个数是否可以被整除,因为判断是否可以被整除时,只需测试这个数的前一半就可以判断出所有的,所以只需循环到外循环数的1/2即可,j%i中的%在JAVA中是取余的意思,因此当(j%i==0)时,说明这个数被整除了,break跳出内循环,进行下一次外循环,如果当i>j/2时,说明j前一半的数都不能被整除,后面一半的也不用判断了,所以可以直接判定这个数是质数,并输出。

在这里还有一个就是 i++ 和 ++i 的区别,i++ 是先执行程序,循环内执行完后,让i+1,而++i是先让i+1,然后再执行程序。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12049899.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-20
下一篇2023-05-20

发表评论

登录后才能评论

评论列表(0条)

    保存