表达式:运算等式,常量,变量
【1】
if (表达式)
{语句块1}
else
{语句块2}
//判断表达式,真执行语句块1,假执行语句块2
***************************************
if (表达式1)
{语句块1}
else if(表达式2)
{语句块2}
else if(表达式3)
{语句块4}
……
else
{语句块n}
【2】switch
switch (表达式)
{
case 常量表达式1:语句块1; break;
case 常量表达式2:语句块2; break;
case 常量表达式n:语句块n; break;
default :语句块n+1
}
从终端获取一个分数,按照不同的区间,输出不同的字符
100 ~ 90 ‘A’
89 ~ 80 ‘B’
79 ~ 70 ‘C’
69 ~ 60 ‘D’
50 ~ 0 ‘E’
【3】goto
用于跳转,后面跟上一个标识符;
【4】
while(表达式)
{
//循环体
}
//当表达式为真,执行循环体;继续判断及执行;当表达式为假立即结束循环
1 不断地从终端获取一个数
成功: 30 ---> 00:30
90 ---> 01:30 //六十进制
失败:打印错误信息,并继续执行 //return
2 不断地从终端获取数据
当输入的值为0时结束
输出奇数的个数,偶数的个数
1 3 5 8 2 0 --> 奇数3个 偶数2
【5】
for(expression1; expression2; expression3)
{
//循环体;
}
1、表达式1:最先执行,且只执行一次
2、表达式2:作为循环的条件,
真:执行循环体
假:立即结束循环
3、表达式3:当表达式2为真,且执行完循环体后执行表达式3
输出1000以内的水仙花数。
123 == 1^3 + 2^3 + 3^3
_F
__FE
___FED
____FEDC
_____FEDCB
______FEDCBA
求100以内的质数;只能被1和他自己本省整除的数
2 ~ 100
5 6
源码及注释:
1、1_if.c
#include <stdio.h>
int main(int argc, const char *argv[])
{
int i;
scanf("%d",&i);
if(i==0)
{
printf("等于0\n");
}
else if(i > 0)
{
printf("大于0\n");
}
else
{
printf("小于0\n");
}
return 0;
}
2、2_if_score.c
#include <stdio.h>
int main(int argc, const char *argv[])
{
int score;
if(scanf("%d",&score) != 1)
{
printf("score error\n");
// getchar();
return -1; //结束当前函数,-1 异常退出
}
if(100 >= score && score >= 90)
{
putchar('A');
}
if(89 >= score && score >= 80)
putchar('B');
if(79 >= score && score >= 70)
putchar('C'); //只有一条语句,可省略{}
if(69 >= score && score >= 60)
putchar('D');
if(59 >= score && score >= 0)
{
putchar('E');
}
putchar('\n');
return 0;
}
3、3_switch.c
#include <stdio.h>
int main(int argc, const char *argv[])
{
int a,b;
char x;
scanf("%d%c%d",&a, &x, &b);
switch(x)
{
case '+':printf("add = %d\n",a+b);break;
case '-':printf("sub = %d\n",a-b);break;
case '*':printf("mul = %d\n",a*b);break;
case '/':printf("div = %d\n",a/b);break;
default :printf("other\n");
}
return 0;
}
4、4_switch_score.c
#include <stdio.h>
/*
* 100 ~ 90
* 89 ~ 80
* 79 ~ 70
* 69 ~ 60
* 59 ~ 0
*/
int main(int argc, const char *argv[])
{
int score;
if(scanf("%d",&score) != 1)
{
printf("score error\n");
return -1;
}
if(score < 0 || score > 100)
{
printf("score error\n");
return -1;
}
score = score / 10; // 0 ~ 10
switch(score)
{
case 10:
case 9:printf("A\n");break;
case 8:printf("B\n");break;
case 7:printf("C\n");break;
case 6:printf("D\n");break;
default:printf("E\n");
}
return 0;
}
5、5_goto.c
#include <stdio.h>
int main(int argc, const char *argv[])
{
int i = 5;
loop:
if(i > 0)
{
printf("i = %d\n",i);
i--;
sleep(1); //延时1秒
goto loop;
}
return 0;
}
6、6_while.c
#include <stdio.h>
int main(int argc, const char *argv[])
{
int i = 8;
while(i--) // i--:i先判断是否=0,然后--,然后进行下面的循环体。
// --i:i先--,然后判断,然后执行循环体
{
if(i == 4)
{
// break; //立即结束整个循环
continue; //结束本轮循环,继续下一轮循环
}
printf("i = %d\n",i);
sleep(1);
}
puts("end");
return 0;
}
7、7_while_minue.c
#include <stdio.h>
int main(int argc, const char *argv[])
{
int minute;
while(1)
{
if(scanf("%d",&minute) != 1)
{
printf("minute error\n");
getchar(); //吃掉垃圾字符
continue; //跳过本轮继续下一轮循环
}
printf("%02d:%02d\n",minute/60, minute%60);
}
return 0;
}
8、8_while_Odd.c
#include <stdio.h>
int main(int argc, const char *argv[])
{
int i,count_j = 0, count_o = 0;
int sum_j = 0, sum_o = 0;
while(1)
{
if(scanf("%d",&i) != 1)
{
printf("scanf error\n");
return -1;
}
if(i == 0)
break;
if(i%2 == 1)
{
count_j++;
sum_j += i;
}
else
{
count_o++;
sum_o += i;
}
}
if(count_j != 0)
{
sum_j = sum_j / count_j;
}
if(count_o != 0)
{
sum_o = sum_o / count_o;
}
printf("count_j = %d , sum_j = %d\n",count_j, sum_j);
printf("count_o = %d , sum_o = %d\n",count_o, sum_o);
return 0;
}
9、9_for.c
#include <stdio.h>
int main(int argc, const char *argv[])
{
int i, sum = 0;
for(i=0; i<10; i++)
{
if(i == 5)
{
// break; //用于结束整个循环
continue;
}
printf("i = %d\n",i);
}
for(i=0; i<=100; i++)
{
sum += i;
}
printf("sum = %d\n",sum);
return 0;
}
10、10_for_flower.c
#include <stdio.h>
int main(int argc, const char *argv[])
{
int i, ge, shi, bai;
for(i=100; i<1000; i++)
{
ge = i % 10;
shi = i%100/10; // shi = i / 10 % 10;
bai = i / 100;
if((ge*ge*ge + shi*shi*shi + bai*bai*bai) == i)
{
printf("i = %d\n",i);
}
}
return 0;
}
11、11_for_for.c
#include <stdio.h>
int main(int argc, const char *argv[])
{
int i,j;
for(i=1; i<4; i++)
{
//执行3次
for(j=1; j<3; j++)
{
//执行 2*3 次
printf("i = %d j = %d\n",i,j);
}
puts("***********************");
}
return 0;
}
12、12_for_multable.c
#include <stdio.h>
/*
*乘法口诀表
*/
int main(int argc, const char *argv[])
{
int row,line;
for(row=1; row<=9; row++)
{
for(line=1; line<=row; line++)
{
printf("%d*%d=%-2d ",line, row, line*row);
}
putchar(10);
}
return 0;
}
13、13_for_picture.c
#include <stdio.h>
/*
* _F
* __FE
* ___FED
* ____FEDC
* _____FEDCB
* ______FEDCBA
* /
int main(int argc, const char *argv[])
{
int i,j;
for(i=0; i<6; i++)
{
for(j=0; j<=i; j++) //原理:乘法口诀表,梯形
{
putchar('_');
}
for(j=0; j<=i; j++)
{
putchar('F'-j);
}
putchar('\n');
}
return 0;
}
14、14_for.c
#include <stdio.h>
/*
*
* 100以内质数
* /
int main(int argc, const char *argv[])
{
int i,j,sign = 0;
for(i=2; i<=100; i++) //9 :2 3 4 5 6 7 8 8:2 3 4 5 6 7
{
sign = 0;
for(j=2; j<i; j++)
{
if(i%j == 0)
{
sign = 1;
break;
}
}
if(sign == 0)
{
printf("i = %d\n",i);
}
}
return 0;
}