v5 goto-while语句
同样的代码用if循环来写,或者是用goto语句来写
开头添加for语句,添加了循环终止条件
这个loop也可以换名字,换成_loop也可以
把多个函数的出口集中到一处去
v6 while ,do while
肯定会做一次,之后再条件判断
打印所有的水仙花数
分析:怎么打印出所有的水仙花数?
首先定义一个初始值为100的变量,之后一个个判断,再一个个递增,问题是
1.判断完了之后放在哪里呢?又怎么把这些数都打印出来呢?利用循环打印出来就好,每一个符合条件的水仙花数,都打印出来,那个printf放在循环内部
2.三位数的个位,百位,十位又怎么表示呢?百位和个位思考正确,十位需要多思考一步,我们可以用几个变量来过渡。
#include <stdio.h>
int main(int agrc,const *char argv[]){
int num=100;
int count=0;
while(num>=100 && num<1000){
if( num=((num/100)*(num/10)*(num%100)_{
count++;
}else{
num++;
}
printf("%");
}
num/100 算出百位数字是多少,记为变量a
num%10 算出个位数字是多少,记为变量c
num/10%10 算出十位数字,记为变量b
水仙花数代码:
#include <stdio.h>
int main(int agrc,const *char argv[]){
int num=100;
int a,b,c;
while(num<1000){//这边写<=999或者是<1000都正确
a=num/100;
b=num/10%10;
c=num%100;
if(a*a*a+b*b*b+c*c*c==num)
printf("%d\n",n);
num++;
}
return 0;
}
v7 for语句
i=1为表达式1,可省略,但是应该在循环之前就赋值
i<=100为表达式2,省略了将陷入死循环
i++ 为表达式3,可省略,但是省略了要在循环体中增加使循环变量值改变的语句
利用for循环打印九九乘法表
两个循环语句就是可以进入双重循环,可以打印出这种乘法表的行和列
for(i=0;i<=8;i++)
for(j=0;i>=j;j++)
printf("i*j=%d"); × printf( "%d*%d=%d\t", j,i,i*j);
第一个错误,是列*行,第二个错误,打印出来的每一个字母都要加格式控制符
99乘法表代码
#include <stdio.h>
int main(int argc,char *argv[])
{
int i,j;
for(i=0;i<=9;i++){
for(j=1;j<=i;j++)
printf("%d*%d=%d",j,i,i*j);
puts("");
}
return 0
}
程序运行结果
先把不加横线的打印出来,再加横线,就是在j的二重循环的时候分开写
v9-v10 循环辅助语句
break跳出循环语句的代码示例(!!!只是跳出一层循环)
怎么用代码判断素数?这句话说的不准确,只是说怎么判断,应该说在键盘上输入一个数,我们应该判断他是不是素数?是,则打印是的,不是则打印不是,用键盘上输入的数挨个除以从2开始的数。
contiue 结束本次循环,而break结束本轮循环
比如像这边当遇到一个数对3取余能为0的情况下,就结束本轮循环,跳到下一个,如果没有取到0,就打印出来,这边是continue的含义。
如果continue换成break的话,则到能够和3取余为0的情况下,就直接退出了,不再往下循环了。
利用break和continue辅助判断素数的程序,输入#,则结束程序