1.if语句的练习:
#include <stdio.h>
int main()
{
//逻辑运算符的练习
int pessimisticYorN_data;
int factor_data;
printf("2023年一切都会好起来的对吗?悲观输入0,乐观输入1。\n");
scanf("%d",&pessimisticYorN_data);
if(pessimisticYorN_data==1){
printf("你认为这取决于什么呢?外贸1、科技2还是其他3。\n");
scanf("%d",&factor_data);
if(factor_data==1||factor_data==2){
printf ("我也那么认为\n");
}
if(factor_data==3){
printf("或许吧!");
}
}
if(pessimisticYorN_data!=1){
printf("放心吧,稳中向好。");
}
2.else if 语句的练习:
#include <stdio.h>
int main(){
char letter;
puts("这是一个小写字母输出程序,请输入一个字母");//puts双引号格式可以直接输出汉字
scanf("%c",&letter);
if(letter>=97&&letter<=122){ //
printf("%c",letter);
}
else if(64<letter&&letter<91){
printf("%c",letter+32);
}
else
{
puts("输入有误");
}
return 0;
}
3.课堂作业,分别使用else if和switch case语句编写程序。
要求:
消费金额<500 无折扣;
消费500-1000 折扣2%;
消费1000-2000 折扣5%;
消费2000-3000 折扣8%;
消费>3000 折扣15%;
(1)使用else if语句编写程序:
#include <stdio.h>
//使用else if语句计算商品实付金额。
int main(){
float spend;
puts("请输入您的商品总金额\n");
scanf("%f",&spend);
if(spend<250){
printf("无折扣,此次购物支付的金额为:%f\n",spend);
}
else if (250<=spend&&500>=spend){
//spend=(float)spend*0.98;
printf("98折,此次购物支付的金额为:%f\n",spend*0.98);
}
else if(500<spend&&1000>=spend){
printf("此次购物支付的金额为:%f\n",spend*0.95);
}
else if(1000<spend&&2000>=spend){
printf("此次购物支付的金额为:%f\n",spend*0.92);
}
else if(2000<spend&&3000>=spend){
printf("此次购物支付的金额为:%f\n",spend*0.9);
}
else {
printf("此次购物支付的金额为:%f\n",spend*0.85);
}
return 0;
}
(2)使用switch case语句编写程序:
#include <stdio.h>
int main(){
float discount;
int count;
printf("请输入商品总金额\n");
scanf("%f",&discount);
//在使用switch case语句之前把各区间转化为对应为数字。
if(discount <250){
count=0;
}
else if(discount>=250&&500>discount){
count=1;
}
else if(500<=discount&&discount<1000){
count=2;
}
else if (1000<=discount&&discount<2000){
count=3;
}
else if(2000<=discount&&discount<3000){
count=4;
}
else{
count=5;
}
switch(count){
case 0:
printf("未满足折扣活动,本次购物需要支付:%f",discount);
break;
case 1:
printf("享受98折优惠,本次购物需要支付:%f",discount*0.98); //%f中显示的值是逗号','后的总计算值。
break;
case 2:
printf("享受95折优惠,本次购物需要支付:%f",discount*0.95);
break;
case 3:
printf("享受92折优惠,本次购物需要支付:%f",discount*0.92);
break;
case 4:
printf("享受9.0折优惠,本次购物需要支付:%f",discount*0.9);
break;
default://default 之后别忘了‘:’符号。
printf("享受85折优惠,本次购物需要支付:%f",discount*0.85);
}
return 0;
}
以上switch case 练习中,又用到了else if语句,写的多此一举,可以简练到不需要else if语句。
4.对不同的分数区间进行评级划分:
#include <stdio.h>
int main(){
//60分以下为E,60-69为D,70-79为C,80-89为B,90分以上为A。
//分别使用else if 和switch case进行编写。
float grades;
printf("请输入您的分数\n");
scanf("%f",&grades);
/*
if(grades>=90&&100>=grades){
printf("您的评分为A");
}
else if(grades<90&&80<=grades){
puts("您的评分为B");
}
else if(grades<80&&70<=grades){
puts("您的评分为C");
}
else if(grades<70&&60<=grades){
puts("您的评分为D");
}
else if(0<=grades&&60>grades){
puts("您的评分为E");
}
else{puts("输入的分数不合理");}
*/
int integerdata=grades/10;
switch(integerdata)
{
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
puts("评分为E,需要端正学习态度!!!");
break;
case 6:
puts("评分为D,在危机边缘徘徊!!!");
break;
case 7:
puts("评分为C,还须努力些!");
break;
case 8:
puts("评分为B,继续加油!");
break;
case 9:
printf("评分为A,辛苦了,但请不要骄傲。");
break;
}
return 0;
}
1.容易犯错的点:
1,忘记break;
2,case后面加: 。
3,有报错, switch quantity not an integer switch(grades/10)switch(): 括号内要求为整数变量,解决方法,定义一个整数变量填入。
4,报错:error: stray ‘\243’ in program,可能符号不是英文模式输入。