建网站的网站有哪些,微信做兼职什么网站好,wap浏览器手机版,wordpress 七牛插件一、开关语句
switch(n) //n可以是数值、表达式#xff0c;运算结果必须是整型
{case val: //必须是常量#xff0c;如果val等于n#xff0c;则打开开关...;break; //关闭执行开关#xff0c;switch中不能与continue配合使用//如果所有的case后面都有…一、开关语句
switch(n) //n可以是数值、表达式运算结果必须是整型
{case val: //必须是常量如果val等于n则打开开关...;break; //关闭执行开关switch中不能与continue配合使用//如果所有的case后面都有break就形成了多分支结构default //如果所有的case都没有匹配成功则打开default执行开关而且放在任何位置都一定会执行...;break; //a ... b 表示一段范围但是不推荐使用
}练习1:输入一个月份判断季节#includestdio.hint main(int argc,const char* argv[])
{int mon;printf(请输入一个月份);scanf(%d,mon);if(mon1 || mon12){printf(输入错误);}else{switch(mon/3){case 1:printf(春天);break;case 2:printf(夏天);break;case 3:printf(秋天);break;default:printf(冬天);break;}}return 0;
}练习2:输入一个月份忽略润平年问题判断该月多少天#includestdio.hint main(int argc,const char* argv[])
{char mon;printf(请输入月份);scanf(%hhd,mon);if(mon1 || mon12){printf(输入错误); }else{switch(mon){case 2:printf(该月28天);break;case 4:case 6:case 9:case 11:printf(该月30天);break;default:printf(该月31天);break;}}return 0;
}二、循环语句
循环是一种让一段代码反复执行从而达到你想要的结果
for是哟中比较灵活而且危险相比较其他循环的一种循环
一般使用一个变量来引导这个循环的运行这个变量叫做循环变量i(index 索引)
for([1];[2];[3])
{[4];
}
[1] 给循环变量赋值C99可以再次定义循环变量
[2] 判断循环变量是否达到边界
[4] 被反复执行的代码语句也叫做循环体
[3] 改变循环变量防止出现死循环一般对循环体变量进行自加或自减
[2]...[4]...[3]...大括号问题1、如果循环体只有一行代码大括号可以省略但不利于扩展一般商业代码都要求大括号不能省略。2、建议上下对齐方便查看是否缺少大括号for循环的多种循环for(;;)
{//死循环
}int i 0;
for(;i10;i)
{}for(int i0;i10;)
{printf(---);i;
}while语句while(条件) //当条件为真执行循环体为假时结束{//循环体}
while循环语句相当于for循环语句的精简版本
for循环负责明确知道循环次数的问题
while循环负责只知道结束条件而不确定循环次数的问题do while语句
do{//循环体
}while执行条件 //分号不能少
先执行循环体语句在判断循环条件该循环语句至少执行一次
适合先干活后检查的特殊情况例如输入密码文件读写循环嵌套循环语句中包含了循环语句外层循环执行一次内层循环执行全部练习3计算出所有3位水仙花数#includestdio.hint main(int argc,const char* argv[])
{int num;int i;int a,b,c;for(i100;i1000;i){ ai/100;bi/10%10;ci%10;numa*a*ab*b*bc*c*c;if(i num){printf(%d ,num); }}return 0;
}练习4输入一个正整数判断是否是素数#includestdio.hint main(int argc,const char* argv[])
{int i;int num;int k2;printf(请输入一个数);scanf(%d,num);if(num0){printf(输入错误);return -1;}for(i2;i(num/2);i){if(0 num % i){k; }}if(2k){printf(是素数); }else{printf(不是素数); }return 0;
}练习5输入一个整数分解显示#includestdio.hint main(int argc,const char* argv[])
{int a[14];int num,num_0,k0;int i;printf(请输入一个整数);scanf(%d,num);num_0num;while(0 ! num){a[k]num%10;num / 10;k;}if(num_00){printf(- );for(ik-1;i0;i--){printf(%d ,0-a[i]); }}else{for(ik-1;i0;i--){printf(%d ,a[i]); }}return 0;
}练习6输入一个正整数判断是否是回文数#includestdio.hint main(int argc,const char* argv[])
{int num,num_00,key;printf(请输入一个正整数);scanf(%d,num);keynum;while(0 ! key){num_0num_0*10key%10;key / 10;}if(numnum_0){printf(是回文数); }else{printf(不是回文数);}return 0;
}三、跳转语句
goto 可以在函数内任意跳转
它可能会破坏已经设计好的分支或者循环语句因此绝大多数公司都是禁用的。
但是它他别适合驱动编程中的异常处理。标签名...goto 标签名练习7不使用循环语句计算N的阶乘break 1、在switch语句中用于关闭执行开关2、在循环语句中用于跳出循环只能跳出1层continue结束本次循环进入下一次循环return1、返回一个数据给调用者2、结束函数的执行练习8不使用循环语句计算出前N项的斐波那契数列 1 1 2 3 5 8 13
#includestdio.hint main(int argc,const char* argv[])
{int N;int key,num1,ret1;printf(请输入N);scanf(%d,N);if(N2){int iN;
loop1:printf(1 );i--;if(i0){goto loop1; }return 0;}else{printf(1 1 ); N - 2;}
loop2:keynum;numnumret;retkey;N--;printf(%d ,num);if(N0){goto loop2; }
}作业
1、打印99乘法表#includestdio.hint main(int argc,const char* argv[])
{int i,j;for(i1;i10;i){for(j1;ji;j){printf(%d*%d%2d ,i,j,i*j); }printf( \n);}return 0;
}2、百鸡百钱问题 公鸡5 母鸡3 3小鸡1#includestdio.hint main(int argc,const char* argv[])
{int i,j,k;for(i0;i20;i){for(j0;j(100-5*i);j){k100-5*i-3*j;if(100 ij3*k){printf(公鸡%d只母鸡%d只小鸡%d只\n,i,j,3*k); }}}return 0;
}3、计算100~1000所有素数#includestdio.hint main(int argc,const char* argv[])
{int i,j,key0;for(i100;i1000;i){key0;for(j2;ji/2;j){if(0 i%j){key; }}if(0 key){printf(%d ,i); }}return 0;
}4、输入一个日期yyyy-mm-d计算公元1年到日期为止过了多少天time(NULL) 获取1970-1-1 0秒 到运行此函数为止过了多少秒srand(time(NULL));rand() 随机数伪随机#includestdio.hint main(int argc,const char* argv[])
{int year,month,day,i,daymax;int time0;printf(请输入日期year-month-day\n);scanf(%d%d%d,year,month,day);if(month 1 || month12){printf(输入有误);return -1;}else{switch(month){case 2:daymax28;break;case 4:case 6:case 9:case 11:daymax30;break; default:daymax31;}if(0 year%4 month 2){daymax;if(0 year%100 0! year%400){daymax--;}}if(day daymax || day1){printf(输入有误日最大为%d,daymax);return -2;}}time (year-1)*365;for(i1;iyear;i){if(0 i%4 0 ! i%100 || 0 i%400){time;}}for(i1;imonth;i){time 31;switch(i){case 2:time - 3;break;case 4:case 6:case 9:case 11:time -1;break; }}if(0 year%4 0 ! year%100 || 0 year%400){time 1;}time day-1;printf(过了%d天,time);return 0;
}5、显示平行四边形每个printf只能输出一个符号#includestdio.hint main(int argc,const char* argv[])
{int i,j,k,l9;for(i9;i0;i--){for(ji;j0;j--){printf( );}for(k0;k10;k){printf(*);}printf(\n);}return 0;
}