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;
}