c语言循环结构(whiledowhilefor)
P112 T5 从键盘输入一个小于1000的正整数,要求输出它的平方根,(若平方根不是整数,则输出其整数部分)要求在输入数据后先对其进行检查是否为小于1000的正整数。若不是,则要求重新输入。 #include #include #define M 1000 int main() { int i,k; printf("请输入一个小于%d的整数i:",M); scanf("%d",&i); if (i>M) {printf("输入的数不符合要求,请重新输入一个小于%d的整数i:",M); scanf("%d",&i); } k=sqrt(i); printf("%d的平方根的整数部分是:%d\n",i,k); return 0; } 思考: 连续两次都输入错误呢? #include #include #define M 1000 int main() { int i,k; printf("请输入一个小于%d的整数i:",M); scanf("%d",&i); while(i>M) {printf("输入的数不符合要求,请重新输入一个小于%d的整数i:",M); scanf("%d",&i); } k=sqrt(i); printf("%d的平方根的整数部分是:%d\n",i,k); return 0; } 5.4 for语句 #include int main() { int i=1,sum=0; while (i<=100) { sum=sum+i; i++; } printf("sum=%d\n",sum); return 0; } #include int main() { int i=1,sum=0; do { sum=sum+i; i++; }while(i<=100); printf("sum=%d\n",sum); return 0; } 下面是几种不同的表示方法: (1)表达式1和表达式3是逗号表达式,如; int sum,i; for(sum=0,i=1;i<=100;i++,i++); sum+=i; 其中sum=0和循环控制变量无关。 (2)省略表达式1和表达式3,如: int sum=0,i=1; for( ; i<=100 ; ) { sum+=i; i+=2; } (3)三个表达式全部省略,如: int sum=0,i=1; for( ; ; ) { sum+=i; i+=2; if(i>100) goto loop ; } loop: (4)省略循环体,把循环体变成空语句,原来的工作放到循环头中完成,如: int i,sum=0; for( i=1 ;i<=100 ;sum+=i ,i+=2); #include main( ) { int a=0,sum=0; printf("Input data:\n"); do { scanf("%d",&a); printf("%4d",a); sum=sum+a; } while ( a!=0 ) ; printf("\nsum=%d\n",sum); } 不要丢 do 关键字 当a为非0时,执行循环体 第1次运行: Input data: Input data: 11 22 33 44 55 66 77 88 99 0 1 2? 11 22 33 44 55 66 77 88 99 0 sum=495 第1次运行: 0? 0 sum=