分支和循环结构,分支和循环程序设计实验报告

  分支和循环结构,分支和循环程序设计实验报告

  Yyds干货库存

  人生有三种语言结构。

  (1)序列结构

  (2)选择结构——分支语句:if开关

  (3)循环结构3354循环语句:while for do while goto

  在C中,0表示假,非0表示真。(假设-1为真)

  如果语句

  语法结构:

  If(表达式)语句;

  If(表达式)语句1;

  其他

  2;

  If(表达式1)语句1;

  Elseif(表达式2)

  2;

  Else //省略最后一个Else语句,根据需要编写。

  声明3;

  如果or else想要控制多个语句,就必须用花括号括起来,整体形成一个代码块。

  上面程序的输出结果既不是“哈哈哈”也不是“呵呵呵”,结果是什么都不输出。Else匹配最近的if,所以它是属于第一个if的所有代码块内容。

  如果不匹配,Else是与最近的一对。

  如果常数和变量比较,我们可以把常数写在前面,这样可以避免诸如:5=5==num等错误;

  练习

  1.确定一个数是否是奇数?

  #包含stdio.h

  int main()

  {

  int num=0;

  Printf(请输入一个数字:\ n );

  scanf(num=%d\n ,num);

  if(数字%2==1)

  {

  Printf(这个数是奇数);

  }

  其他

  {

  Printf(这个数是偶数);

  }

  返回0;

  }

  2.并输出1-100之间的奇数。

  #包含stdio.h

  int main()

  {

  int a=1;

  而(a=100)

  {

  if(a%2==1)

  {

  printf(%d\n ,a);

  a;

  }

  其他

  a;

  }

  返回0;

  }

  交换语句

  Switch语句的一般形式:

  开关(语句1)

  {

  案例(陈述2):

  内容;

  打破;

  案例(陈述3):

  内容;

  打破;

  案例(陈述4):

  内容;

  打破;

  ……

  违约;//可选

  内容;

  打破;

  }

  Switch语句从case进入并突围,只有当case后的语句与Switch后的语句匹配时才会执行。

  注意:Switch语句必须是整数表达式,case后面必须跟一个整数常量表达式。

  While循环

  While语法结构:

  While(表情)

  循环语句;

  只有当表达式为真时,才会执行循环语句。当发现表达式为假时,将不再执行该表达式,从而结束循环。

  continue的作用是终止这个循环,也就是说continue之后的代码不再执行,可以直接跳转到while的判断部分,判断是否需要进入下一个循环。只要在循环中遇到break,后面的所有循环都会停止,循环会直接终止,所以:break in while用于永久终止循环。Getchar是输入字符,putchar()是输出字符。putchar(变量名)的意思和printf ("%c ",变量名)差不多;

  由EOF——表示的文件结束是文件的结束标记。

  intmain()

  {

  int ch=0;

  while((ch=getchar()!=EOF)

  {

  putchar(ch);

  }

  返回0;

  }

  当你输入EOF时,循环不会结束,只有当你输入Ctrl Z时。

  getchar和scanf的区别:

  Scanf是把你的输入放入一个缓冲区,最后的回车键作为结束标记,最后显示的时候不会显示\ n .但是getchar先去输入缓冲区看看有没有内容,里面的内容是不是你需要的,就会被读走。所以我们用getchar()输入的时候,一般会在前面加一个getchar();不需要给他返回值,因为我们此时的目的是清空数据缓冲区,让getchar得到我们想要的。

  Getchar函数逐位读取字符。

  #包含stdio.h

  int main()

  {

  while ((ch=getchar())!=EOF)

  {

  if(ch 0ch 9 )

  继续;

  putchar(ch);

  }

  返回0;

  }

  上面的代码表示只输出输入字符0-9之间的字符,包括0和9,否则不输出。

  For循环

  语法:for(表达式1;表情2;3)表达

  {

  循环语句;

  }

  表达式1是初始化部分,用来初始化循环变量。表达式2是条件判断部分,用来判断循环何时终止。表达式的3位调整部分用于调整循环条件。

  “break continue”和“break continue”的用法与while语句中的一致。

  有一个小小的区别:

  #包含stdio.h

  int main()

  {

  int I=0;

  for(I=1;我我)

  {

  如果(i==5)

  继续;

  printf(%d ,I);

  }

  返回0;

  }

  这个结果的输出是1 2 3 4 6 7 8 9 10。因为我在i=5的时候遇到了continue,直接跳到了变量调整部分I,所以这个时候,变量的值变成了6,输出继续。

  #包含stdio.h

  intmain()

  {

  int I=1;

  while (i=10)

  {

  如果(i==5)

  继续;

  printf(%d ,I);

  我;

  }

  }

  这段代码的结果是1 2 3 4。最后是一个死循环,因为i=5的时候遇到了continue,后面的部分没有执行,所以直接跳过了变量调整部分,一直判断i=5。

  关于for语句循环控制变量的一些建议:

  不能在for循环内部修改循环变量,以防止for循环失控。建议将for语句的循环控制变量的值写成“先关后开”的形式。当for循环的表达式2,也就是判断语句没有写出来的时候,意味着这个判断条件始终为真,然后进入无限循环。

  请问代码循环了几次?

  #包含stdio.h

  int main()

  {

  int I=0;

  int k=0;

  for (i=0,k=0;k=0;我,k)

  k;

  返回0;

  }

  答案是循环是0次,也就是根本不进入循环,因为判断语句是赋值语句,赋值表达式的结果是0,为假,所以不进入循环。

  Do while循环

  语法:do

  {

  流通;

  }

  while()

  练习

  1.从键盘输入一个数字N,找到N!

  #包含stdio.h

  int main()

  {

  int n=0;

  int I=1;

  int sum=1;

  Printf(请输入n:\ n );

  scanf(%d ,

  while (i=n)

  {

  sum=sum * I;

  我;

  }

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

  返回0;

  }

  2.求1!2!3!4!……n!

  [x]

  #包含stdio.h

  int main()

  {

  int n=0;

  int I=1;

  int sum=1;

  int get=0;

  Printf(请输入n:\ n );

  scanf(%d ,

  for(n=1;n n)

  {

  sum=1;

  while (i=n)

  {

  sum=sum * I;

  我;

  }

  get=获取总和;

  }

  printf(get=%d\n ,get);

  返回0;

  }

  [x]

  #包含stdio.h

  int main()

  {

  int n=0;

  int I=1;

  int sum=1;

  int get=0;

  Printf(请输入n:\ n );

  scanf(%d ,

  for(n=1;n n)

  {

  sum=sum * n;

  get=获取总和;

  }

  printf(get=%d\n ,get);

  返回0;

  }

  3.在有序数组中找到一个特定的数n,写出int binsearch(intx,int v[],int n);函数:在v [0]=v [1]=v [2]=… v [n-1]的数组中求x。

  [x]

  #包含stdio.h

  int main()

  {

  int I=1;

  int k=7;

  int arr[]={1,2,3,4,5,6,7,8,9,10 };

  int lgth=sizeof(arr)/sizeof(arr[0]);

  for(I=0;i lgth我)

  {

  if(k==arr[i])

  {

  Printf (found,下标%d\n ,I);

  打破;

  }

  }

  如果(i==lgth)

  Printf(未找到);

  返回0;

  }

  [x]二分搜索法方法

  #包含stdio.h

  int main()

  {

  int k=7;

  int arr[]={1,2,3,4,5,6,7,8,9,10 };

  int I=0;

  int legth=sizeof(arr)/sizeof(arr[0]);

  int right=legth-1;

  int left=0;

  while(左=右)

  {

  int米德=(右左)/2;

  if(k arr[米德])

  {

  左=米德1;

  }

  else if(k arr[米德])

  {

  右=米德-1;

  }

  其他

  {

  Printf (found,下标% d \ n ,middle);

  打破;

  }

  }

  如果(左/右)

  {

  Printf(未找到);

  }

  返回0;

  }

  4.编写代码来演示多个字符从两端移动并汇聚到中间。

  # includes dio . h//这是printf所在的库函数

  #include string.h //这是strlen所在的库函数。

  #include windows.h //这是sleep驻留的库函数。

  #include stdlib.h //这是系统所在的库函数

  int main()

  {

  char arr1[]=欢迎来到东华!;

  char arr 2[]= # # # # # # # # # # # # # # # # # ;

  int left=0;

  int right=strlen(arr 1)-1;

  同时(左/右)

  {

  arr 2[left]=arr 1[left];

  arr 2[右]=arr 1[右];

  printf(%s\n ,arr 2);

  睡眠(1000);//表示输出时停留1000毫秒。

  系统(“cls”);//表示输出一次结果后屏幕清空。

  左;

  右-;

  }

  返回0;

  }

  5.写一个代码模拟用户登录场景,只登录三次。(您只允许输入三次密码。如果密码正确,系统会提示您成功登录。如果三次都错了,你就退出程序。)

  STMP (A,B)比较字符串A和字符串B,如果字符串A B,它将返回一个大于0的数字,如果字符串A B,它将返回一个小于0的数字。

  # includes dio . h//这是printf所在的库函数

  #include string.h //这是strlen所在的库函数。

  int main()

  {

  int I=0;

  char password[20]={ 0 };//不能写成password[]={0}。如果这样定义,你就不知道数组的长度是多少,就会得到一个错误。

  for(I=0;我我)

  {

  Printf(请输入密码:\ n );

  scanf(%s ,密码);

  If (strcmp (password, 123456 )==0)//比较两个字符串是否相等时,不能直接用==来判断。而是应该使用strcmp函数,它在string.h函数库中。

  {

  Printf(密码正确,登录成功\ n );

  打破;

  }

  其他

  {

  Printf(密码错误\ n );

  }

  }

  如果(i==3)

  {

  Printf(三次密码错误,退出程序\ n );

  }

  返回0;

  }

  Goto语句

  一般写程序的时候很少使用goto语句,因为它会破坏程序的逻辑,它使用的场景是跳出多层循环嵌套。

  分支和循环作业和练习

  1.输入三个数字,按降序输出。

  # includes dio . h//这是printf所在的库函数

  int main()

  {

  int a=0;

  int b=0;

  int c=0;

  Printf(请输入三个数字:\ n );

  scanf(%d%d%d ,a,b,

  如果(a b)

  {

  int temp=a;//这里注意B不能直接赋给A,因为那样A的值很容易丢失。

  a=b;

  b=温度;

  }

  如果(交流)

  {

  int temp=a;

  a=c;

  c=温度;

  }

  如果(公元前)

  {

  int temp=b;

  b=c;

  c=温度;

  }

  Printf(降序为:%d %d %d\n ,a,b,c);

  返回0;

  }

  2.编写一个代码,打印1到100之间的所有3的倍数的数字。

  #包含stdio.h

  int main()

  {

  int I=0;

  for(I=0;我我)

  {

  如果(i%3==0)

  {

  printf(%d ,I);

  }

  }

  返回0;

  }

  3.给定两个数,求这两个数的最大公倍数。

  比如24和18是按相位划分的。首先看24的余数是不是0。如果不是0,用除数除它,直到余数为0。这时,最后的除数是一个公倍数。

  #包含stdio.h

  int main()

  {

  int a=0;

  int b=0;

  int temp=0;

  Printf(请输入两个数字:\ n );

  scanf_s(%d %d ,a,

  While(temp=a% b)//只要结果不为0,就进入循环。

  {

  a=b;

  b=温度;

  }

  Printf(公倍数为:%d ,b);

  返回0;

  }

  4.打印1000年和2000年之间的闰年

  #包含stdio.h

  int main()

  {

  int year=0;

  for(年份=0;年份=2000年;年份)

  {

  //确定年份是否是闰年。

  //1.能被4整除,不能被100整除

  //2.这是能被400整除的闰年。

  if(年份% 4==0年份% 100!=0)

  {

  Printf(闰年是:%d\n ,年);

  }

  else if(year@0==0)

  {

  Printf(闰年是:%d\n ,年);

  }

  }

  返回0;

  }

  5.打印100到200之间的质数

  #包含stdio.h

  int main()

  {

  int count=0;

  int I=0;

  for(I=100;i=200我)

  {

  int j=0;

  for(j=2;j j)

  {

  如果(i%j==0)

  {

  打破;

  }

  }

  如果(j==i)

  {

  数数;

  printf(%d\n ,I);

  }

  }

  printf(count=%d\n ,计数);

  返回0;

  }

  优化方案:首先偶数肯定不是质数,所以先生成100到200之间的奇数。根据c=a*b,那么a或b必须小于C平方根.

  #包含stdio.h

  # include math.h //sqrt函数在这个库中。

  int main()

  {

  int count=0;

  int I=0;

  for(I=101;i=200i 2)

  {

  int j=0;

  for(j=2;j=sqrt(I);j)

  {

  如果(i%j==0)

  {

  打破;

  }

  }

  if (j sqrt(i))

  {

  数数;

  printf(%d\n ,I);

  }

  }

  printf(count=%d\n ,计数);

  返回0;

  }

  6.写一个程序来计算在1到100之间的所有整数中有多少位数字9出现。

  #包含stdio.h

  int main()

  {

  int count=0;

  int I=0;

  for(I=1;i=100我)

  {

  if (i % 10==9)

  {

  数数;

  }

  如果(i/10==9)

  {

  数数;

  }

  }

  printf(%d\n ,count);

  返回0;

  }

  7.计算1/1-1/2 1/3 1/4 1/5的值.1/99 1/100并打印出结果。

  #包含stdio.h

  int main()

  {

  int I=0;

  双和=0.0;

  int flag=1;

  for(I=1;i=100我)

  {

  sum=flag *(1.0/I);//这里必须是1.0,否则结果都是错的。

  flag=(-flag);

  }

  printf(%lf\n ,sum);

  返回0;

  }

  8.找出10个整数中的最大值。

  #包含stdio.h

  int main()

  {

  int I=0;

  int arr[]={ 1,2,3,4,5,6,7,8,9,10 };

  int SZ=sizeof(arr)/sizeof(arr[0]);

  int max=arr[0];

  for(I=0;i=10我)

  {

  if(max arr[i])

  max=arr[I];

  }

  printf(%d\n ,max);

  返回0;

  }

  输入10个数字,找出最大值。

  #define _CRT_SECURE_NO_WARNINGS

  #包含stdio.h

  int main()

  {

  int I=0;

  int arr[10]={ 0 };

  Printf(请输入一个数字:);

  for(I=0;我我)

  {

  scanf(%d ,arr[I]);//不要忘记添加地址获取操作符。

  }

  int max=arr[0];

  for(I=1;我我)

  {

  if (arr[i] max)

  {

  max=arr[I];

  }

  }

  printf(max=%d\n ,max);

  返回0;

  }

  9.输出乘法公式表。

  #define _CRT_SECURE_NO_WARNINGS

  #包含stdio.h

  int main()

  {

  int I=0;

  int j=0;

  for(I=1;我我)

  {

  for(j=1;j I 1;j)

  {

  printf(%d*%d=-,I,j,I * j);//Output as-表示输出是两个字符。如果少于两个字符,将自动填充一个空格。%-2d是输出的左对齐。

  }

  printf( \ n );

  }

  返回0;

  }

  10.设计一个猜谜游戏。

  # define _ CRT _ secure _ no _ warnings//scanf所在的头文件

  # includes dio . h//srand函数所在的头文件

  #include time.h //time函数所在的头文件

  # includestdlib . h//rand函数所在的头文件。

  无效菜单()

  {

  printf( * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \ n );

  printf( * * * 1 . play 0 . exit * * * \ n );

  printf( * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \ n );

  }

  无效游戏()

  {

  //时间戳:当前时间-1970年1.1 0:0:0时差换算成秒后的数字。

  int ret=0;

  int guess=0;

  Printf(猜测数字\ n );

  ret=rand()0 1;//生成一个随机数。生成的随机数的范围是0-0x7fff,也就是换算成十进制是32767。取100的余数,输出1-100之间的随机数。

  while (1)

  {

  scanf(%d ,猜测);

  如果(猜ret)

  {

  Printf(猜小\ n );

  }

  else if(猜ret)

  {

  Printf(猜大\ n );

  }

  else if (guess==ret)

  {

  Printf(恭喜你猜对了\ n );

  打破;

  }

  }

  }

  int main()

  {

  //猜数字游戏

  //1.电脑会产生一个随机数

  //2.猜数字

  int input=0;

  srand((无符号int)time(NULL));//设置时间的起点

  做

  {

  menu();

  Printf(请选择:);

  scanf(%d ,输入);

  开关(输入)

  {

  案例1:

  Printf(开始游戏\ n );

  game();

  打破;

  案例0:

  Printf(退出游戏\ n );

  打破;

  默认值:

  Printf(您输入错误,请重新输入\ n );

  打破;

  }

  } while(输入);

  返回0;

  }

  11.关闭程序。

  #define _CRT_SECURE_NO_WARNINGS

  #包含stdio.h

  # include stdlib . h//系统函数所在的头文件

  # include string . h//strcmp函数所在的头文件

  int main()

  {

  char input[20]={ 0 };

  系统(关闭-s-t60 );//这里一定要注意,命令和空格键的格式不能打错。

  再次重申:

  Printf(提示!您的计算机将在1分钟后关闭。如果输入“我是猪”,可以取消关机\ n’);

  scanf(%s ,输入);

  If (strcmp(输入,我是猪)==0)

  {

  系统(“关断-a”);

  }

  其他

  {

  再次转到;

  }

  返回0;

  }

  喜羊羊

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • office2010激活密钥大全 怎么永久激活office2010
  • project2010产品密钥免费_project2010激活密钥永久激活码
  • c语言调用退出函数 c语言退出整个程序怎么写
  • c语言中怎么给函数初始化 c语言的初始化语句
  • c语言编写函数计算平均值 c语言求平均函数
  • chatgpt是什么?为什么这么火?
  • ChatGPT为什么注册不了?OpenAI ChatGPT的账号哪里可以注册?
  • OpenAI ChatGPT怎么注册账号?ChatGPT账号注册教程
  • chatgpt什么意思,什么是ChatGPT ?
  • CAD中怎么复制图形标注尺寸不变,CAD中怎么复制图形线性不变
  • cad中怎么创建并使用脚本文件,cad怎么运行脚本
  • cad中快速计算器的功能,cad怎么快速计算
  • cad中快速修改单位的方法有哪些,cad中快速修改单位的方法是
  • cad中心点画椭圆怎么做,cad轴测图怎么画椭圆
  • CAD中常用的快捷键,cad各种快捷键的用法
  • 留言与评论(共有 条评论)
       
    验证码: