admin管理员组文章数量:1794759
c语言学习 条件、循环语句
目录
一、条件语句
if语句:
switch语句
二、循环语句
while 循环
for 循环
三、代码举例
1.密码的确认:输入密码后进行确认,输入Y/N
2、计算1!+2!+3!+4!+。。。+10!
3、 在一个有序数组中查找具体某个数字(折半查找)
4.输出闰年
5、输出素数
6、演示多个字符从两端移动,向中间汇聚
7、模拟密码登陆,三次机会
8.猜数字游戏
9、输入三个数,从大到小输出
一、条件语句 if语句:
if(表达式1) { 语句1;} else if(表达式2) {语句2;} … else if(表达式n){语句n;} else{语句n+1;}
注:else 与最近的 if 匹配。
switch语句switch(表达式){ case 整型数值1: 语句 1; case 整型数值2: 语句 2; ...... case 整型数值n: 语句 n; default: 语句 n+1; }注:
1、在switch 语句中,有 break 一直循环,直到把所有 case 运行完。
2、break 是C语言中的一个关键字,专门用于跳出 switch 语句。break 只在switch和循环语句中使用, continue 只在循环语句中使用。
3、case 后面必须是一个整数,或者是结果为整数的表达式,但不能包含任何变量。
4、default 不是必须的。当没有 default 时,如果所有 case 都匹配失败,那么就什么都不执行。
二、循环语句 while 循环while (表达式)
循环语句;
注:while循环中,break用来永久终止循环,countinue 的作用是跳过本次循环到continue 后面的代码,直接去判断部分,看是否进入下一次循环。
for 循环for (var i = 0; i < 10; i++) { 要执行的代码 }
三、代码举例 1.密码的确认:输入密码后进行确认,输入Y/N //gerchar putchar while #include <stdio.h> int main() { char password[20]={0}; printf("please input password:\\n"); scanf("%s",password);//读取密码字符串 printf("please Y or N\\n");//确认信 int tem; while ((tem=getchar())!='\\n') { ; } //用来消除缓冲区中多个内容 int ch=getchar();//重新获得字符串进行判断 if (ch=='Y') printf("success\\n"); else printf("failure"); return 0; } 2、计算1!+2!+3!+4!+。。。+10! //计算1!+2!+3!+4!+。。。+10! #include <stdio.h> int main() { int ret=1; int sum=0; for (int n = 1; n <=10; ++n) { ret*=n; sum+=ret; } printf("%d\\n",sum); return 0; } 3、 在一个有序数组中查找具体某个数字(折半查找) //在有序数组中查找数,二分法 #include <stdio.h> int main() { int arr[]={1,2,3,4,5,6,7,8,9,10}; int k=7; int sz=sizeof(arr)/sizeof(arr[0]); int left=0; int right=sz-1; while (left<=right) { int mid=(left+right)/2; if (arr[mid]<k) left=mid+1; else if (arr[mid]>k) right=mid-1; else { printf("find:%d\\n",mid); break; } } if (left>right) printf("no"); return 0; } 4.输出闰年 //算法自下而上,逐步细化的方法 输出2000-2100中是闰年的年份,符合下列一条 //能被4整除但不能被100整除 //能被100整除且能被400整除 #include <stdio.h> int main() { int year=2000;//年份 while (year<=2100) { if (year % 4 == 0) { if (year % 100 != 0) printf("%d yes\\n",year); else { if (year % 400 == 0) printf("%d yes\\n",year); } } year = year + 1; } return 0; } 5、输出素数 //判断一个数是否为素数 //能被整除就不是素数 #include"stdio.h" #include"math.h" main() { int number,i,n; printf("number:\\t"); scanf("%d",&number); while(number>0)//输入0或小于0的数,结束循环 { n=(int)sqrt(number);//开平方 if(number==1) { printf("1既不是素数,也不是合数\\n");//注:1既不是素数,也不是合数 scanf("%d",&number); continue; //跳出这一次循环 } for(i=2;i<=n;i++) //2和3的开平方分别为1.414和1.732,不满足循环条件(i<=n) { if(number%i==0) break; } if(i>n) //i=2,2和3满足(i>n),所以是素数 printf("%d yes\\n",number); else printf("%d no\\n",number); printf("number:\\t"); scanf("%d",&number); } } 6、演示多个字符从两端移动,向中间汇聚 //演示多个字符从两端移动向中间汇聚 #include <stdio.h> #include <string.h> #include <windows.h> int main() { char arr1[]="welcome to there"; char arr2[]="################"; int left=0; int right=strlen(arr1)-1; while (left<=right) { arr2[left]=arr1[left]; arr2[right]=arr1[right]; printf("%s\\n",arr2); Sleep(1000);//休眠1s system("cls");//清空屏幕 left++; right--; } printf("%s\\n",arr2); return 0; } 7、模拟密码登陆,三次机会 //编写模拟三次密码输入场景,密码假设为123456 #include <stdio.h> #include "string.h" int main() { int i=0; char password[20]={0}; for (i = 0; i <3 ; ++i) { printf("input password:\\n"); scanf("%s",password); if (strcmp(password,"123456")==0)//比较字符串内容 { printf("success\\n"); break; } else printf("fault\\n"); } if (i==3) printf("output\\n"); return 0; } 8.猜数字游戏 //猜数字游戏 #include <stdio.h> #include "stdlib.h" #include "time.h" void menu()//打印菜单 { printf("***********\\n"); printf("***1.play**\\n"); printf("***0.exit**\\n"); } void game()//进行游戏 { int ret=rand()%100+1;//随机生成1到100的数 int guess=0; while (1) { printf("guess the number"); scanf("%d",&guess); if (guess<ret) printf("small\\n"); else if(guess>ret) {printf("big\\n");} else { printf("success\\n"); break; } } } int main() { int input=0; srand((unsigned int )time(NULL)); printf("Hello, World!\\n"); do { menu(); printf("please choose:\\n"); scanf("%d",&input); switch (input) {//选择0 1 case 1: game(); break; case 0: printf("output\\n"); break;; default: printf("new choose:\\n"); break; } }while (input); return 0; } 9、输入三个数,从大到小输出 //输入3个整数,从大到小输出 #include <stdio.h> int main() { int a,b,c; scanf("%d %d %d",&a,&b,&c); int tem; if (b>a) { tem=a;//a放到tem b放到a a=b; b=tem; } if (a<c) { tem=a; a=c; c=tem; } if (c>b) { tem=b; b=c; c=tem; } printf("%d %d %d\\n",a,b,c); return 0; }10、 两个数的最大公约数
//最大公约数 #include <stdio.h> int main() { int n=0; int m=0; scanf("%d %d",&m,&n); int max=m>n?n:m;//让max=其中的最小值 while(1) { if(m%max==0&&n%max==0) { printf("%d\\n",max); break; } max--; } return 0; }
版权声明:本文标题:c语言学习 条件、循环语句 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686628538a88197.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论