你的程序有的有问题,我都修改过了,你自己看下.
1.
当程序执行i=2和i=4的时候,程序执行continue,进入下次循环,相当于程序只执行i=1,i=3和i=5,所以程序输出3个*,和3个#,最后循环结束后再输出$
#include "stdio.h"
void main()
{int i;
for(i=1;i<=5;i++)
{
if(i%2)
printf("*");
else
continue; //continue语句的作用是跳过循环本中剩余的语句而强行执行下一次循环
printf("#");
}
printf("$\n");
}
结果: *#*#*#$
2.
++i i自增1后再参与其它运算
#include "stdio.h"
void main()
{
int x,i;
for(i=1;i<=100;i++)
{
x=i;
if(++x%2==0)
if(++x%3==0)
if(++x%7==0)
printf("%d ",x);
}
printf("\n");
}
结果: 28 70
3.
i-- i参与运算后,i的值再自减1
#include "stdio.h"
void main()
{int x=2;
while(x--);//这是独立的一条语句,当x=0的时候,条件不满足,但判断后x还要减一次,所以x=-1,再执行输出语句,故输出结果为-1
printf("%d\n",x);
}
结果: -1
1.main()
{int i;
for(i=1,i<=5;i++) /*循环5次*/
{if(i%2) printf("*"); /*假如i是奇数``书出* */
else continue; 否则继续下层循环``
printf("#"); /*奇数同时输出#*/
}
printf("$\n"); /*最后书出$回车*/
}
2.{int x,i;
for(i=1;i<=100;i++) /*循环100次*/
{x=I;
if(++x%2==0) /*如果x+1能整除2*/
if(++x%3==0) /*如果x+2能整除3*/
if(++x%7==0) /*如果x+3能整除7*/
printf('%d",x); 则输出x
26%2==0 27%3==0 28%7==9
68%2==0 68%3==0 70%7==0;
3.main()
{int x=2;
while(x--);
printf("%d\n",x);
} ``
x=2``输出··1答案错了吧··
1.当i是奇数的时候(i%2不为0)执行printf("*"),所以不会执行else 里的语句,因此接下来执行printf("$\n");因为有1、3、5三个奇数,所以会输出3个*#
2.26被2整除 27被3整除 28被7整除
68被2整除 69被3整除 70被7整除
你的39 81不满足程序。
3.while(x--);先判断x的值,如果x不为0再执行循环体。
所以x为1的时候,判断循环条件成立,这是x通过--变成了0;
接下来执行循环体并判断循环条件x的值,因为前面x变成了0,所以退出循环,但是x仍要--一次,所以变成-1.
你再好好看看你题,我认为有问题啊
第一个,我认为答案是***$ continue后的语句不应该执行
第二个,x没有被增加,没次都被赋为1怎么能打出28,70这样的数
第三个,printf("$d\n",x); 中的$d有问题吧
我是楼主
第一题,当i等于5时,打印出*后改怎么继续执行下去?请说详细一点
第二题,我和三楼一样,认为x实际上是没有增加的啊
第三题,x的初值是2,自减后是1,怎么是-1了呢?