本章要点:
if语句
if语句的嵌套
条件运算符
switch语句
选择结构程序设计
问题描述——学生助学金评定
助学金是高等院校资助贫困学生的一项重要举措,一般助学金的评定要参考学生的学习成绩。假定助学金的评选规则为:综合平均成绩在90分及以上的同学可获一等助学金;在80分(包括80分)至90分之间的同学可获二等助学金;在60分(包括60分)至80的同学可获三等助学金;60分以下的同学不能获助学金。
//引例 如果小于60 输出是No grant!
#include<stdio.h>
main()
{
int score;
scanf("%d",&score);
if (score<60)
printf("No grant!\n");
}
if语句,表达式格式if(表达式) 语句1;
功能:值为真1 假为0
1.if表达式必须用括号括起来
2.if表达式仅有一条语句构成 可不加{}
比较两个数,按由大到小输出:
#include<stdio.h>
void main()
{
int a,b,x;
printf("请输入两个数:");
scanf("a=%d,b=%d",&a,&b);
if(a<b)
{
x=a;
a=b;
b=x;
} //交换a与b单元内容
printf("a=%d,b=%d",a,b);
}
第二种格式:
if(表达式)
语句1;
else
语句2;
输入任意三个整数num1、num2、num3,求证数的最大值:
#include "stdio.h"
void main()
{
int num1,num2,num3,max;
printf("请输入三个整数:");
scanf("%d,%d,%d",&num1,&num2,&num3);
if(num1>num2)
max=num1;
else
max=num2;
if(num3>max)
max=num3;
printf("三个数字是:%d,%d,%d\n",num1,num2,num3);
printf("max=%d\n",max);
}
一个人分数判定,如果大于90及以上判定优秀,80及80以上是合格,70及70以上是中等,60及以上及格,60分数以下不合格。
#include "stdio.h"
void main()
{
int s;
printf("该同学的成绩为:");
scanf("%d",&s);
if(s>=90)
printf("优秀\n");
else
if(s>=80)
printf("合格\n");
else
if(s>=70)
printf("中等\n");
else
if(s>=60)
printf("及格\n");
else
printf("不及格\n");
}
条件运算符:
要求有三个操作对象,称为三目运算符。
表达式一般格式为:表达式1?表达式2:表达式3
如果”表达式1“的值为非0(真),运算结果等于表达式2,否者就等于表达式3。
条件运算符的优先级:高于赋值运算符,但是低于关系运算符和条件运算符。(其结合性:从右到左)”又结合“
//例如:x=a>b?a:b 当a=2,x=1时,x=2
//例如:x=a>b?a:(a>b?c:d)
当a=1,b=2,c=3,d=4时 x=4
switch语句:
switch一般表达式:
switch(表达式)
{
case 常量表达式1:语句1;[break;]
case 常量表达式2:语句2;[break;]
...
case 常量表达式n:语句n;[break;]
[default:语句n+1;[break;]]
}
用swicth语句完成“助学金评定”引例的编程,完成助学金等级的判别。
#include "stdio.h"
void main()
{
int score;
printf("请输入你的成绩:");
scanf("%d",&score);
switch(score/10)
{
case 10:printf("优秀\n");break;
case 9:printf("优秀\n");break;
case 8:printf("合格\n");break;
case 7:printf("中等\n");break;
case 6:printf("及格\n");break;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0:printf("不及格\n");break;
default:printf("改成绩不符合程序输入!");
}
}
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END