求解!
哪位前辈给点注解,这题杂做啊?最好给点注释main()
{ long int m9=9,sum=9;
int zi,n1=1,c9=1;
scanf("%d",&zi);
while(n1!=0)
{ if(!(sum%zi))
n1=0;
else
{m9=m9*10;
sum=sum+m9;
c9++;
}
}
printf("%ld,can be divided by %d \"9\"",sum,c9);
}
哇靠 这是C语言题吧 学过的,很快就忘了。。 晕啊啊啊啊啊 苦力长江二号 发表于 2011-6-12 20:10 static/image/common/back.gif
哇靠 这是C语言题吧
是啊,你会吗? smile 发表于 2011-6-12 21:26 static/image/common/back.gif
是啊,你会吗?
不会 我能看出来就很高兴了 苦力长江二号 发表于 2011-6-12 21:34 static/image/common/back.gif
不会 我能看出来就很高兴了
呵呵,我也不会啊 ,头疼啊
本帖最后由 撒旦 于 2011-6-13 03:35 编辑
其实这个程序是判断一个素数能被几个9整除 我下面举例说要输入的哪个数字不对 哈哈 只是一个思路供你参考
本帖最后由 撒旦 于 2011-6-13 03:31 编辑
main()
{ long int m9=9,sum=9; “定语长整型m9=9 sum=9”
int zi,n1=1,c9=1; “定语zi,n1=1,c9=1“
scanf("%d",&zi); "输入zi数值 需要手动输入"
while(n1!=0) while语句 只要n1不等于0就执行下面语句 否则跳出循环
{ if(!(sum%zi)) sum除于zi余数取反为真 就是说sum除于zi余数为0则执行下条n1=0;
n1=0;
else 否则(sum除于zi余数不为0),则执行下面的语句
{m9=m9*10; m9=m9*10
sum=sum+m9; sum=sum+m9
c9++; c9累加1,再循环
}
}
printf("%ld,can be divided by %d \"9\"",sum,c9); 显示sum,c9最后得数
}
在这个while语句里总条件是n1不等于0,就可以继续执行下面的语句,但是下面语句在执行中造成n1等于0就结束
所以可以这么理解这个语句
手动输入zi数值 假设我输入2
n1=1,所以继续执行下面的,
sum除于zi=9/2余数为7不等于0
所以不执行n1=0语句
而是跳入执行m9=m9*10=9*10=90
sum=sum+m9=9+90=99
c9++累加1为2
此时结束一个循环 再从if语句进行验证
sum除于zi=99/2余数为1不等于0
所以不执行n1=0语句
而是跳入执行m9=m9*10=90*10=900
sum=sum+m9=99+900=999
c9++累加1为3
以此类推
直到最后执行sum除于zi余数为0是则执行n1=0语句,这样满足while语句条件跳出while循环
最后的语句是显示通过循环后得到的sum,c9数字 其实c9实际就是循环的次数
本帖最后由 撒旦 于 2011-6-13 03:47 编辑
,,,,,,,,,,,,,,,,,,,