循环结构的程序设计

1.while 语句

① 显示1~10的平方

#include <stdio.h>

void main()

{

   int i = 1;

   while(i <= 10)

   {

       printf("%d * %d = %d\n",i, i, i*i);

       i++;

   }

}

② 求两个正整数的最大公因子

采用欧几里德算法,

(Ⅰ)输入两个正整数m和n 

(Ⅱ)用m除以n,余数为r,如果r=0,则n是最大公因子,算法结束。否则为(Ⅲ); 

(Ⅲ)把n赋给m,把r赋给n,转(Ⅱ) 

#include <stdio.h>

void main()

{

   int m, n, r;

   printf("input two positive integer: "); //提示输入两个正整数

   scanf("%d%d",&m, &n); //输入两个正整数

   while(n != 0)

   {

      r = m % n; //求余数

      m = n;

      n = r;

   }

   printf("their greatest common divisor is %d\n",m); //输出结果

}


2.do_while语句 : do 循环体; while(表达式);

特点:先执行循环体,再判断表达式。

 ①while后边的括号()不能省

 ②while最后面的分号不能省

 ③while后面的表达式可以是任意类型的表达式,但一般是条件表达式或逻辑表达式

 ④表达式的值是循环的控制条件

 ⑤语句部分称为循环体,当需要执行多条语句是,应使用复合语句

#include <stdio.h>

void main()

{

   int i = 1, sum;

   do

   {

      sum += i;

      i++;

   }while(i <= 100);

   printf("%d\n", sum);

} //5050



3.for语句:for(表达式1;表达式2;表达式3)循环体语句;

①for后面的括号不可以省

②表达式1:一般为赋值表达式,给控制变量赋初值(控制变量的初始化)

③表达式2:关系表达式或逻辑表达式,循环控制条件(循环的条件)

④表达式3:一般为赋值表达式,给控制变量增量或减量(循环控制变量的更新)

⑤表达式之间用分号分隔

⑥语句部分称为循环体,当需要执行多条语句是,应使用复合语句

#include <stdio.h>

void main()

{

   int i, sum;

   for(i = 1, sum; i <= 100; i++)

   {

      sum += i;

      printf("sum=%d\n",sum);

   }

}

注意事项:

 








4.循环嵌套


禁止:①从外层跳入内层 ②跳入同层的不同循环 ③向上循环

输出九九乘法表

#include <stdio.h>

void main()

{

   int i, j;

   for(i = 1; i < 10; i++)

      printf("%4d", i);

   printf("\n------\n");   

   for(i = 1; i < 10; i++)

      for(j = 1; j < 10; j++)

         printf((j == 9) ? "%4d\n" : "%4d", i * j);      

}


5.break和continue语句

break语句:在循环语句和switch语句中,终止并跳出循环体或开关体。

①break不能用于循环语句和switch语句之外的任何其他语句之中。

②break只能终止并跳出最近一层的结构。


#include <stdio.h>

void main()

{

   char c;

   while(1)

   {

       c = getchar(); //读取一个字母

       if(c >= 'a'  && c <= 'A') //是小写字母

           putchar(c - 'a' + 'A'); //输出其大写字母

       else //不是小写字母

           break; //退出循环

   }

} howareyou/HOWAREYOU



continue语句:结束本次循环,跳过循环体中尚未执行的语句。

①仅用于循环语句中,不可以switch

②在嵌套循环的情况下,continue语句只对包含它的最内层的循环体语句起作用。


6.exit()函数:终止整个程序的执行,强制返回操作系统。

void exit(int status);  头文件<stdio.h>

参数status为int型,status的值传给调用进程(一般为操作系统)。按照惯例,当status的值为0或为宏常量EXIT_SUCCESS时,表示程序正常退出;当status的值为非0或为宏常量EXIT_SUCCESS时,表示程序出现某种错误后退出。

例子:输入三角形的边长。求面积。

#include <stdio.h>

#include <stdib.h>

#include <math.h>

void main()

{

   float a, b, c;

   float s, area;

   printf("input the length of three edges of thianglle:");

   scanf("%f%f%f",&a,&b,&c);

   if(a <= 0 || b <= 0 || c <= 0)

   {

       printf("the length of three edges of thriangle is error !\n");

       exit(-1);

   }

   s = (a + b + c) / 2;

   s = s * (s - a) * (s - b) * (s - c);

   if(s < 0)

   {

       printf("the length of three edges of thriangle is error !\n");

       exit(-1);

   }

   area = (float)sqrt(s);

   printf("area = %.2d\n", area);

}





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值