C语言明解(四)程序的循环控制

/*

练习4-1

对代码清单4-2中的程序进行修改,像右面这样在显示结果的同时显示出输入的整数值

请输入一个非负整数:1963

1963逆向显示的结果是3691.

*/

 

 1  #include <stdio.h>
 2  
 3  int main(int argc, const char * argv[])
 4  {
 5  
 6      int num;
 7      
 8      do {
 9          printf("请输入一个非负整数:");
10          scanf("%d",&num);
11          if (num<0) {
12              puts("请不要输入负整数");
13          }
14          
15      } while (num < 0);
16      
17      printf("%d的逆向显示结果是:",num);
18      do {
19          printf("%d",num % 10);    //显示最后一位数
20          num = num / 10;           //右移一位
21      } while (num>0);
22      puts("");
23  
24  }

 

 

/*

练习4-2

对代码清单4-3中的程序进行修改,像右面这样在显示结果的同时显示出输入的整数值

请输入一个非负整数:1963

1963的位数是4.

*/

 1 #include <stdio.h>
 2 
 3 int main(int argc, const char * argv[])
 4 {
 5     int dig;
 6     int num;
 7     
 8     do {
 9         printf("请输入一个非负整数:");
10         scanf("%d",&num);
11         if (num<0) {
12             puts("请不要输入负整数");
13         }
14         
15     } while (num < 0);
16     
17     dig = 0;
18     printf("%d",num);
19     do {
20         num = num / 10;
21         dig = dig + 1;
22     } while (num>0);
23     printf("的位数是%d.\n",dig);
24     
25     return 0;
26 }

 

 

/*

练习4-3

编写一段程序,想右面这样读取俩个整数的值,然后计算出他们之间所有整数的和。

请输入俩个整数。

整数1:37

整数2:28

大于等于28小于等于37的所有整数的和是325.

*/

 

 1 #include <stdio.h>
 2 int main(void)
 3 {
 4     int a,b,sum;
 5     sum=0;
 6     printf("整数1:");
 7     scanf("%d",&a);
 8     printf("整数2:");
 9     scanf("%d",&b);
10     if(a>b)
11     {
12         printf("大于等于%d小于等于%d的所有整数和是",b,a);
13         while(a>=b)
14         {
15             sum+=b;
16             b++;
17         }
18         printf("%d\n",sum);
19     }
20     else
21     {
22         printf("大于等于%d小于等于%d的所有整数和是",a,b);
23         while(b>=a)
24         {
25             sum+=a;
26             a++;
27         }
28         printf("%d\n",sum);
29     }
30     return 0;
31 }

 

 /*

练习4-4

使用复合赋值运算符 /=,对代码清单4-2中的程序进行修改。

*/

 1 #include <stdio.h>
 2 
 3   int main(int argc, const char * argv[])
 4   {
 5 
 6       int num;
 7 
 8       do {
 9           printf("请输入一个非负整数:");
10           scanf("%d",&num);
11           if (num<0) {
12               puts("请不要输入负整数");
13           }
14 
15       } while (num < 0);
16 
17       printf("%d的逆向显示结果是:",num);
18       do {
19           printf("%d",num % 10);    //显示最后一位数
20           num /= 10;                //右移一位
21       } while (num>0);
22       puts("");
23   
24   }

 

/*

练习4-5

使用复合赋值运算符 /=和后置递增运算符++,对代码清单4-3中的程序进行修改。

*/

 1  #include <stdio.h>
 2 
 3  int main(int argc, const char * argv[])
 4  {
 5         int dig;
 6         int num;
 7     
 8          do {
 9                 printf("请输入一个非负整数:");
10                 scanf("%d",&num);
11              
12                  if (num<0) {
13                          puts("请不要输入负整数");
14                      }
15         
16              } while (num < 0);
17     
18          dig = 0;
19          printf("%d",num);
20      
21         do {
22                 num /= 10;
23                 dig++;
24             
25             } while (num>0);
26      
27          printf("的位数是%d.\n",dig);
28      
29          return 0;
30 }

 

/*

练习4-6

对代码清单4-7中的程序进行修改,当输入值为负数的时候不执行换行操作。

*/

 1 #include <stdio.h>
 2 
 3   int main(int argc, const char * argv[])
 4   {
 5 
 6       int num;
 7       
 8       printf("请输入一个整数:");
 9       scanf("%d",&num);
10       
11       while (num >= 0) {
12           printf("%d",num);
13           num--;
14           putchar(\n);
15       }
16       return 0;
17   }

 

/*

练习4-7

对代码清单4-7中的程序进行修改,使其不是递减到0而是递减到1为止。

*/

 1 #include <stdio.h>
 2 
 3   int main(int argc, const char * argv[])
 4   {
 5 
 6       int num;
 7       
 8       printf("请输入一个整数:");
 9       scanf("%d",&num);
10       
11       while (num >= 1)
12           printf("%d",num--);
13       putchar(\n);
14       
15       return 0;
16   }

 

 /*练习4-8

对代码清单4-9的程序进行如下修改。.从1开始递增。

.输入值小于0的时候不换行。

 */

 

 1 #include <stdio.h>
 2 
 3   int main(int argc, const char * argv[])
 4   {
 5 
 6       int i,num;
 7       
 8       printf("请输入一个整数:");
 9       scanf("%d",&num);
10       
11       i = 1;
12       while (i<num) {
13           printf("%d",i++);
14           putchar(\n);
15 
16       }
17       
18       return 0;
19   }

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。