switch
switch (表达式或变量)
{
case 常量值1:
/* code */
break;
case 常量值2:
/* code */
break;
default:
/* code */
break;
}
注意:
1. case后边只能跟整型、字符常量,不能跟浮点数、字符串。
2. case后边可以不加break,从符合条件的分支开始执行,直到遇见break或者switch执行完毕为止
例题:终端输入一个成绩,使用switch判断等级
90-100 A 80-89 B 70-79 C
<70 补考
终端输入一个日期,打印是这一年的第几天
循环语句
for
for(表达式1;表达式2;表达式3)
{
//语句块;
}
表达式1:循环变量赋初值
表达式2:终止条件
表达式3:增加或减少
执行顺序:
先执行表达式1,循环变量有初始值,判断表达式2是否成立
成立则进入循环,执行语句块,再执行表达式3,判断表达式2是否成立...
不成立,退出循环
练习:水仙花数三位数153==1*1*1+5*5*5+3*3*3
100-999
双层for
for(表达式1;表达式2;表达式3)
{
for(表达式4;表达式5;表达式6)
{
}
}
外层循环修改一次,内层循环执行一轮
例:
for变形格式:
int i=1;
for(;i<5;i++)
{
printf("%d\n",i);
}
----------------------------------------------------
int i=1;
for(;i<5;)
{
printf("%d\n",i);
i++;
}
----------------------------------------------------
for(;;);
while
格式:
while(终止条件)
{
// 代码块;
}
循环控制语句
break 终止当前循环
continue 结束本次循环,继续下一次
return 0 程序的结束(主函数中的return)
练习:
九九乘法表:
#include <stdio.h>
int main()
{int a, b;for (a = 1; a < 10; a++){for (b = 1;b <= a; b++){printf("%d*%d=%d\t", b, a, a * b);}putchar(10);}return 0;
}
打印图案:
终端输入:例:5
*
**
***
****
*****
#include <stdio.h>
int main()
{int a, b;int c=0;printf("请输入实数:");scanf("%d",&c);for (a = 1; a <c; a++){for (b = 1;b <= a; b++){printf("*");}putchar(10);}return 0;
}
打印图案:例输入:5
*****
****
***
**
*
#include <stdio.h>
int main()
{int i, j;int n = 0;printf("请输入一个实数:");scanf("%d", &n);for (i = 1; i <= n; i++){for (j = 1; j < i; j++){printf(" ");}for (j = 1; j <= n - i + 1; j++){printf("*");}printf("\n");}return 0;
}
输入一个整数,输出这个数的所有因子
例:12
1 12 2 6 3 4
#include <stdio.h>
int main (){int a=0;printf("请输入一个整数:");scanf("%d",&a);int b;for(b=1;b<=a;b++){if(a%b==0){printf("%d\n",b);}}return 0;
}
方法二:
#include <stdio.h>
int main()
{int a, b = 0, c;printf("请输入一个整数:");scanf("%d", &b);for (a = 1; a <= c / 2; a++){if (b % a == 0){c = b / a;if (a <= c){printf("%d %d\n", a, c);}}}return 0;
}