C语言学习笔记——循环结构

1.求1+2+3+…+100

#include<stdio.h>
int main()
{int i=1,sum=0;           //定义变量i的初值为1,sum的初值为0  while(i<=100)            //当i>100,条件表达式i<=100的值为假,不执行循环体{                       //循环体开始sum=sum+i;         //第1次累加后,sum的值为1i++;               //加完后,i的值加1,为下次累加做准备}                     //循环体结束printf("sum=%d\n",sum);   //输出1+2+3…+100的累加和return 0;
}

1.1 while语句:只要当循环条件表达式为真(即给定的条件成立),就执行循环体语句。
(1) 循环体如果包含一个以上的语句,应该用花括号括起来,作为复合语句出现。
(2) 不要忽略给i和sum赋初值,否则它们的值是不可预测的,结果显然不正确。
(3) 在循环体中应有使循环趋向于结束的语句。如本例中的“i++;”语句。如果无此语句,则i的值始终不改变,循环永远不结束。

#include <stdio.h>
int main()
{int i=1,sum=0;do {sum=sum+i;i++;}while(i<=100);printf("sum=%d\n",sum);return 0;
}

1.2 do while语句:do…while语句的特点是,先无条件地执行循环体,然后判断循环条件是否成立。
在一般情况下,用while语句和用do…while语句处理同一问题时,若二者的循环体部分是一样的,那么结果也一样。
但是如果while后面的表达式一开始就为假(0值)时,两种循环的结果是不同的。当条件一开始为假时,while语句一次也不执行,do while语句至少执行一次

#include <stdio.h>
int main()
{int i,sum=0;for(i=1;i<=100;i++){sum=sum+i;}printf("%d",sum);
}

1.3 for语句——
格式:for(表达式1;表达式2;表达式3)
其中,三个表达式皆可省略,但分号不可省略,表达式1用于对循环变量赋初值,表达式1只执行一次;表达式2为循环条件表达式;表达式3一般用于使循环正常结束,也可以存放循环中所有的操作。

1.4 循环的嵌套

  1. 计算 1+1/2-1/3+1/4-1/5+1/6-……+1/n
#include <stdio.h>
main()
{double i,n;scanf("%lf",&n);double sum=1;int flag=1;for(i=2;i<=n;i++){sum=sum+1/i*flag;flag=-flag;}printf("%.3lf",sum);//保留三位小数输出
}
  1. 奇偶归一猜想
    ——对于每一个正整数,如果它是奇数,则对它乘3再加1,如果它是偶数,则对它除以2,如此循环,最终都能够得到1。 如n = 11,得序列:11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1。(步骤中最大数是52)

题目:输入正整数n,求这个n归一过程中的最大值。

#include <stdio.h>
main()
{int i,n,max=1;scanf("%d",&n);for(i=n;i>1;){if(i%2==0)i=i/2;else if(i%2!=0)i=i*3+1;if(i>max){max=i;}}printf("%d",max);
}
  1. 有一分数序列:2/1, 3/2, 5/3, 8/5, 13/8, 21/13 …
    求出这个数列的前n项之和,保留两位小数。
#include <stdio.h>
main()
{int n,i;double a=1,b=2,c,sum=0;scanf("%d",&n);for(i=1;i<=n;i++){sum=sum+b/a;c=b;b=a+b;a=c;}printf("%.2f",sum);
}

Lawliet|C语言学习笔记5——循环结构相关推荐

  1. Lawliet|C语言学习笔记3——顺序结构

    C语言学习笔记--顺序结构 计算a+b #include<stdio.h> int main() {int a,b,sum;scanf("%d%d",&a,&a ...

  2. Lawliet|C语言学习笔记4——选择结构

    C语言学习笔记--选择结构 求一元二次方程的根 简约版 #include<stdio.h> #include<math.h> //程序中要调用求平方根函数sqrt int ma ...

  3. Lawliet|C语言学习笔记2——变量/数据类型/表达式

    C语言学习笔记2--认识C语言1 1.变量 a.变量的命名 <类型名称><变量名称> 存放数据的一个地方,用于参与后续的运算. 变量命名的规则:只能由字母.数字和下划线组成,且 ...

  4. C语言学习笔记07-1-语句结构:选择/循环(附三元运算符;DevC可以for定义临时变量的设置;continue、break、return;goto语句简单说明)

    选择/分支 与 循环/重复 语句结构 本质与流程图的三种结构类似,只是C语言没有until型循环,不难理解.文末捎带说一下goto语句. 结构化语句可以实现程序单一出口,goto 是非结构化的,会打乱 ...

  5. C语言学习笔记-3.顺序结构程序设计

    一.数据的输入与输出 1.stdio.h中包含的函数:    getchar(输入字符) gets(输入字符串) printf(格式输出) putchar(输出字符)    puts(输出字符串)   ...

  6. C语言学习9(循环结构:while语句)

    while语句 /*while语句 格式:while(表达式) 循环体:*///实例4-8:计算阶乘M!#include "stdio.h"#include "conio ...

  7. R语言学习笔记——for循环

    基本语法:for (i in ()){} 或 for (i in 1:n){} 例一.为向量赋值 x <- rnorm(5) #随机生成5个均值为0,标准差为1的数 y <- numeri ...

  8. c语言如何宏定义枚举型结构体,C语言学习笔记--枚举结构体

    枚举 枚举是一种用户定义的数据类型,它用关键字enum以如下语法格式来声明: enum 枚举类型名字 {名字0,名字1,...,名字n}: 枚举类型名字通常并不真的使用,要用的是大括号里面的名字,因为 ...

  9. r语言c函数怎么用,R语言学习笔记——C#中如何使用R语言setwd()函数

    在R语言编译器中,设置当前工作文件夹可以用setwd()函数. > setwd("e://桌面//") > setwd("e:\桌面\") > ...

最新文章

  1. C++反汇编-加法分析
  2. Android--制作开场动画/MediaPlayer.OnCompletionListener
  3. 论IP地址在数据库中应该用何种形式存储
  4. php 分布式环境 启动,极简.高性能.分布式框架,可运行于多种环境(apache/php-fpm,swoole)...
  5. asp 执行 exe_EXE程序加密锁下载-EXE程序加密锁电脑版下载v5.0
  6. C库函数与系统函数的关系
  7. PostMan 四种常见的 POST 提交数据方式
  8. megento 获取url参数
  9. STM8学习笔记---定时器 TIM2功能实现
  10. IplImage结构及与其相关的读写函数
  11. linux 串口监视工具_监视Linux的最佳工具
  12. 如何使用VBS调用VBA函数
  13. SIM800L上传数据到OneNET(HTTP)
  14. messenger支持查找附近的人功能吗_玩微信,附近的人,是否双方都在查找附近的人,才能显示?...
  15. 激光清洗的优点和实际案例
  16. WORD打开很慢的解决办法[整理]
  17. 用矩阵解方程式的运算-高斯消元法
  18. 计算机丢失msvc80.dll,msvcr80.dll
  19. Selenium-鼠标和键盘操作
  20. 孟丽秋教授当选为慕尼黑工业大学第一副校长

热门文章

  1. win10+ubuntu18.04lts:在已安装win10环境中利用EasyBCD引导安装Ubuntu
  2. 关于蜂产品保健的一些介绍
  3. 小熊派4G开发板初体验SDK开发
  4. 【推荐系统】召回模型线下评价指标
  5. lpv4的地址格式由多少个字节组成_IPV4的地址格式由多少个字节组成?()。
  6. 极限竞速地平线4 没声音_极限竞速:地平线是汽车爱好者的食物
  7. oracle账号共享,登陆后可下载mysql和jdk
  8. 无线通信中的最大比合并(MRC)分析
  9. Windows10 官方原版镜像下载途径 Label:win10解决方案
  10. java日语_java中常用日语词汇整理