一、程序的三种结构
1.顺序结构:一步接着一步的做
2.分支结构:根据选择条件进行判断下一步
3.循环结构:一遍一遍重复则
二、分支结构:如何写判断表达式
1.使用关系运算符和逻辑运算符写出判断表达式
a>b:如果a是大于b的,则判断表达式为真,否则为假
0<a<10:写成a>0&&a<10
2.运算符的优先级和结合性
3.示例
//输入月份,输出该月是第几季度
#include<stdio.h>
int main()
{
int a;
printf("请输入一个月份:");
scanf("%d", &a);
switch (a)
{
case 3:
case 4:
case 5:printf("该月份是春季"); break;
case 6:
case 7:
case 8:printf("该月份是夏季"); break;
case 9:
case 10:
case 11:printf("该月份是秋季"); break;
case 12:
case 1:
case 2:printf("该月份是冬季"); break;
default:printf("没有这个月份");
}
}
//输入一名学生的成绩进行评分
#include<stdio.h>
int main(){
int t;
scanf("%d",&t);
if(t>=90 && t<100){
printf("A");
}
else if(t>=80 && t<90){
printf("B");
}
else if(t>=70 && t<80){
printf("C");
}
else if(t>=60 && t<70){
printf("D");
}
else if(t>=0 && t<60){
printf("E");
}
}
//根据输入的整数,判断输出的是奇数还是偶数
#include<stdio.h>
int main()
{
int a;
printf("请输入一个数字:");
scanf("%d",&a);
if(a%2==0){
printf("%d为偶数",a);
}
else{
printf("%d为奇数",a);
}
}
//根据输入字母如果不是'y'、'n'输出回答错误,反之输出正确
#include <stdio.h>
int main()
{
char answer;
printf("输入\n");
answer=getchar();
if(answer !='y' && answer !='n'){
printf("错误");
}
else
printf("正确");
}
//从键盘输入一个年份,判断是否为闰年。
//判断闰年条件:能被4整除同时不能被100整除或者能被400整除。
#include <stdio.h>
int main(){
int year;
printf("请输入年份:");
scanf("%d",&year);
if(year%4==0&&year%100!=0||year%400==0){
printf("闰年");
}
else{
printf("平年");
}
}
三、单分支结构
1.如果...则
if(判断表达式)
语句1;
2.表现形式
if(判断表达式)
语句1;
if(判断表达式)
{
语句1;
语句2;
语句n;
}
if(判断表达式)
语句1;
语句2;
语句n;
相当于:
if(判断表达式)
语句1;
语句2;
语句n;
3.示例
//输入两个整数,如果a<b则a与b交换
#include <stdio.h>
int main()
{
int a,b,t;
printf("请输入两个数\n");
scanf("%d%d",&a,&b);
if(a<b)
{
t=a;
a=b;
b=t;
}
printf("a=%d\nb=%d",a,b);
}
四、双分支结构
1.如果...则...
否则...
if(判断表达式)
语句
else
语句
2.表现形式
if(判断表达式)
{
语句1
语句2
语句n
}
else
{
语句4
语句5
语句m
}
注意:if(){}和else{}是一个整体,之间不可以有其他语句
3.示例
五、多分支结构
1.if…else
如果…则
否则 如果…则…
2.表现形式
if(判断表达式1)
{
...
}
else if(判断表达式2)
{
...
}
else
{
...
}
3.if…else if与if嵌套区分
if(嵌套)
if(判断表达式1)
{
if(判断表达式2)
{
...
}
else
{
...
}
}
注意:else与离它最近的上面if配对
4.switch
表现形式
switch(表达式1)
{
case 常量表达式1:
代码段2
break;
case 常量表达式2:
代码段2
break;
...
case n:
break;
default:
代码段n+1
break;
}
注意事项:switch只做入口配对,不做出口检查,必须通过break跳出
5.示例
//给不多于5位的正整数,求它是几位数
#include<stdio.h>
int main(){
int num,flag;
printf("请输入一个整数:");
scanf("%d", &num);
if(num/10==0)
flag=1;
else if(num/100==0)
flag=2;
else if(num/1000==0)
flag=3;
else if(num/10000==0)
flag=4;
else
flag =5;
printf("%d是%d位数",num,flag);
}