C语言第五章:循环结构程序设计总结。(超详细)

本文详细介绍了C语言中的循环结构,包括for、while和do-while语句的使用,以及如何通过break和continue语句控制循环流程。此外,还讨论了循环嵌套和常见循环算法如递推法、迭代法和穷举法的应用。
摘要由CSDN通过智能技术生成

目录

5.1引例 

5.2使用for语句实现循环结构

5.2.1for语句的基本循环 

2.for语句的一般形式中省略表达式.

5.2.2for循环使用示例 

 5.3使用while语句实现循环结构

5.4使用do-while语句实现循环结构 

 5.4.1do-while语句的基本语法。

5.5改变循环结构的跳转语句 

5.5.1 break语句

5.5.2 continue语句

5.5.3goto语句 

5.6循环嵌套 

5.7典型算法举例 

5.7.1 递推法

5.7.2迭代法 

5.7.3穷举法 

5.8循环程序设计示例 

文字总结 



5.1引例 

  1.  需要重复执行的语句称为循环语句,在重复执行的过程中使用了同一个计算公式,但年份每次递减1应是计算出人口会不同
int main()
{
 int n = 13, year;
 double nu, r = 0.02;
 for (year = 1; year <= 10; year++)
 {
  nu = n * pow((1 + r), year);
  printf("%2d年后,人数为:%.2f亿\n", year, nu);
 }return 0;
}

  1. while语句是3种循环结构之一,while后括号中的表达式称为循环条件,循环开始时,一定要保证循环条件为真。
  2. 需要重复执行的语句组成了循环体,本例中循环体部分是重复计算item,然后将其值与要求的精度进行比较,决定是否结束循环
int main()
{
 double sum, item, flag, denominator;
 sum = 0; item = 1; flag = 1; denominator = 1;
 while (fabs(item) >= 1e-6)
 {
  sum = sum + item;
  flag = -flag;
  denominator = denominator + 3;
  item = flag / denominator;
 }printf("sum=%f\n", sum);
 return 0;
}

 

5.2使用for语句实现循环结构

5.2.1for语句的基本循环 

for语句的一般形式为:

for(表达式1;表达式2;表达式3;) 

           循环体结构;

 for语句的执行过程如下:

  1. 首先计算表达式一
  2. 判断表达式二若琪只为真则执行循环体语句,然后执行第3步,值为假结束循环,转到第5步执行
  3. 计算表达式3
  4. 返回第2步继续执行循环
  5. 结束继续执行for语句的下一条语句

 for(循环变量赋初值;循环条件;循环变量增量;)

 说明:循环变量赋初值是一个赋值语句,用于给循环变量赋初值,循环条件是一个关系表达式,决定如何种植循环(即确定循环的终止),循环变量增值决定循环变量在完成一次循环后如何变化,向部分之间以‘;’隔开

int main()
{
 int i, n, sum;
 scanf_s("%d", &n);
 sum = 0;
 for (i = 1; i <= n; i++)
  sum = sum + i;
 printf("由1到%d的和是:%d\n", n, sum);
 return 0;
}

本题目是个连乘的重复过程。 

int main()
{
 int i, n;
 double f;
 printf("输入n的值:");
 scanf_s("%d", &n);
 f = 1;
 for (i = 1; i <= n; i++)
  f = f * i;
 printf("%d=%.0f\n", n, f);
 return 0;
}

 

2.for语句的一般形式中省略表达式.

1.for(;表达式2;表达式3;) 

循环体语句;

注意:此时不能省略第一个;。

 2.for(表达式1;;表达式3;) 

省略表达式2时,表示不对循环进行控制,这是不处理的话,会形成死循环;

3.for(表达式1;表达式2;;) 

可以在循环语句中加入修改循环变量的值的语句。。

5.2.2for循环使用示例 

 

int main()
{
 int n, i, denominator, flag;
 float sum, item;
 printf("输入n的值:");
 scanf_s("%d", &n);
 flag = 1;
 denominator = 1;
 sum = 0;
 for(i=1;i<=n;i++)
 {
  item = flag * 1.0 / denominator;
  sum = sum + item;
  flag = -flag;
  denominator = denominator + 3;
 }printf("Sum=%.2f\n", sum);
 return 0;
}

//int main()
//{
// int i;
// float x, max;
// printf("请输入第1个数:");
// scanf_s("%f", &x);
// max = x;
// for(i=1;i<=9;i++)
// {
//  printf("请输入第%d个数:", i + 1);
//  scanf_s("%f", &x);
//  if (x > max)
//   max = x;
// }printf("10个数的最大数是:%0.f",max);
// return 0;
// 
//}

 

//int main()
//{
// int n, a, b, c;
// for (n = 100; n <= 999; n++)
// {
//  a = n / 100;
//  b = n % 100 / 10;
//  c = n % 10;
//  if (n == a * a * a + b * b * b + c * c * c)
//   printf("%5d", n);
// }return 0;
//}

 

//int main()
//{
// int n, sum, i;
// printf("请输入一个正整数:");
// scanf_s("%d", &n);
// sum = 0;
// for (i = 1; i <= n - 1; i++)
//  if (n % i == 0)
//   sum = sum + i;
// if (n == sum)
//  printf("%d是完数\n", n);
// else
//  printf("%d不是完数\n", n);
// return 0;
//}

 


                
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值