几道C语言初学者的题,帮帮忙吧~

来源:百度知道 编辑:UC知道 时间:2024/06/27 21:30:15
几道再简单不过的题了,可我还是没搞懂啊

main()
{int x=0,y=0,i;
for(i=1; ;++i)
{if(i%2==0){x++;continue;}
if (i%5==0){y++;break;}}
printf("%d,%d",x,y);}

求输出结果

答案说得2,1 我怎么算不对啊

(2) 执行下面程序后,a的值为

main()
{ int a,b ;
for(a=1,b=1;a<=100;a++)
{ if(b>=20) break;
if(b%3==1)
{b+=3 ;
continue;
}
b-=5;
}
}
答案得8 我也算不对

还有为什么这些题我都算不对啊,搞不清{} ()到底先算哪个,一段程序里都是括号,都蒙了!
if(b%3==1)
{
b+=3 ;
continue;
}

b-=5;
还是有一点不明白啊

这里不是和1比较吗 b=1%3不是等于0了吗 怎么还+3啊

首先,你把花括号缩进对齐,以便于看代码:

main()
{
int x=0,y=0,i;
for(i=1; ;++i) 这是一个“死”循环,不过循环体中会跳出。
{
if(i%2==0){x++;continue;}如果i是偶数,就继续下一次循环
if (i%5==0){y++;break;} 如果i是5的倍数,就跳出循环。
}
printf("%d,%d",x,y);
}

一步一步分析:首先,i等于1时,显然不是偶数也不是5的倍数,x和y都不变,并继续下一次循环;i等于2时,是偶数,继续下一次循环,x加1,y不变;i等于3时,x和y都不变;i等于4时,是偶数,继续下一次循环,x加1,y不变;i等于5时,不是偶数,y加1后,跳出循环。
统计一下,x加1共有2次,y共有1次。

(2) 首先也是对齐代码

main()
{
int a,b ;
for(a=1,b=1; a<=100; a++)
{
if(b>=20)
break;

if(b%3==1)
{
b+=3 ;
continue;
}

b-=5;
}
}

这样,你看明白{}的匹配关系了吧? 答案是8,这个没有问题。

第一个就是能够被2整除的, 自然是2, i=5时满足条件下面的Y+1, 就是1,跳出
第二个:应该挺有意思的,b=1,满足条件+3,4,7,10,13,16,19,22,则跳出 , 结果不对, 答案有问题

不知下面的人有没有运行第二个程序, 结果是什么, 应该运行就出来啦, 问问题的热闹也可以运行下, 很简单的, 至于结果吗?只好大家自己去看啦

2楼回答得可以~