1. ifelse 编程练习(22.3.4)
- ifelse.c 有钱有颜吗 没有没机会:
#include <stdio.h>
int main()
{
int haveMoneyOrNot;
int handsomeYesOrNot;
puts("你有钱吗?有钱扣1,否则扣0:");
scanf("%d",&haveMoneyOrNot);
puts("你长的帅吗?帅的话扣1,否则扣0:");
scanf("%d",&handsomeYesOrNot);
if(haveMoneyOrNot ==1 && handsomeYesOrNot == 1){
printf("我们结婚吧!\n");
}else{
printf("你没有机会。\n");
}
printf("相亲结束。\n");
return 0;
}
- uptolower.c 判断大小写字母,大写转换小写再输出,小写直接输出
#include <stdio.h>
//输入一个字符,若是小写字母直接输出,若是大写字母先转换为小写再输出
int main()
{
int cdata;
printf("请输入一个字母字符\n");
scanf("%c",&cdata);
if(cdata>=97 && cdata<=122){
printf("您输入的字母为%c\n",cdata);
}else if(cdata>=65 && cdata<=90){
printf("您输入的字母为%c\n",cdata+32);
}else{
printf("请输入正确的字母字符\n");
}
printf("done!\n");
return 0;
}
2. if嵌套案例(23.3.5)
- ifelseEx.c 谈恋爱案例:身体好>有钱且有颜>愿意给花吗>在一起
#include <stdio.h>
int main()
{
int healthyYesOrNot;
int richYesOrNot;
int handsomeYesOrNot;
int moneyYesOrNot;
puts("你身体好吗?(tips:1好,0不好)");
scanf("%d",&healthyYesOrNot);
if(healthyYesOrNot==1){
puts("你有钱且有颜吗?(tips:输俩数 1有,0没有)");
scanf("%d%d",&richYesOrNot,&handsomeYesOrNot);
if(richYesOrNot==1 && handsomeYesOrNot==1){
puts("你愿意给我花钱吗?(tips:1可,0不可)");
scanf("%d",&moneyYesOrNot);
if(moneyYesOrNot==1){
puts("我们在一起。");
}else{
puts("gun。");
}
}else{
printf("骚瑞,我喜欢有钱有颜的。\n");
}
}else{
printf("身体不好不做朋友哦。\n");
}
return 0;
}
3. 列表选择switchcase(24.3.6)
- demo_switchCase.c 输入数和字符,系统判断后输出对应情况
#include <stdio.h>
int main()
{
int idata;
char cdata;
printf("请输入一个数:\n");
scanf("%d",&idata);
switch(idata){
case 1:
case 2:
case 3:
case 4:
case 5:
puts("满足了1 2 3 4 5的情况");
break;
case 6:
puts("满足了6的情况");
break;
default: //不满足以上
puts("满足了非列表中的情况");
}
getchar(); //9行的回车被26行当成回车符,so用以吸收9行的回车符
printf("请输入一个字符\n");
scanf("%c",&cdata);
switch(cdata){
case 'a':
puts("满足了条件a的情况");
break;
case 'b':
puts("满足了条件b的情况");
break;
case 'c':
puts("满足了条件c的情况");
break;
case 'd':
puts("满足了条件d的情况");
break;
case 'e':
puts("满足了条件e的情况");
break;
default:
puts("满足了非列表中的情况");
}
return 0;
}
4. switch练习学生成绩等级划分(25.3.7)
- demo_switchCaseEx.c 输入分数,输出成绩等级
#include <stdio.h>
int main()
{
int score;
puts("请输入分数");
scanf("%d",&score);
switch(score/10){ //将分数/10,会只保留整数部分
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
puts("等级为D,不及格。");
break;
case 6:
case 7:
puts("等级为C,刚好及格,再接再厉。");
break;
case 8:
case 9:
puts("等级为B,优秀,继续保持。");
break;
case 10:
puts("等级为A,天才啊!");
break;
default:
puts("非法成绩,请重新输入。");
}
puts("done!");
return 0;
}
5. 选择练习题之根据路程算折扣(26.3.8)
- demo_ex_if.c 用if语句的方法算折扣
#include <stdio.h>
int main()
{
int distance;
int discount;
puts("请输入路程:");
scanf("%d",&distance);
if(distance<250){
discount=0;
}else if(distance>=250 && distance<500){
discount=2;
}else if(distance>=500 && distance<1000){
discount=5;
}else if(distance>=1000 && distance<2000){
discount=8;
}else if(distance>=2000 && distance<3000){
discount=10;
}else if(distance>=3000){
discount=15;
}
printf("折扣是:%.2f\n",(float)discount/100);
return 0;
}
- demo_ex_sw.c 用switchCase语句的方法算折扣
#include <stdio.h>
int main()
{
int distance;
int discount;
puts("请输入路程");
scanf("%d",&distance);
switch(distance/250){
case 0:
discount=0;
break;
case 1:
discount=2;
break;
case 2:
case 3:
discount=5;
break;
case 4:
case 5:
case 6:
case 7:
discount=8;
break;
case 8:
case 9:
case 10:
case 11:
discount=10;
break;
default:
discount=15;
}
printf("折扣是:%.2f\n",(float)discount/100);
return 0;
}
6. 作业布置(27.3.9)
- task1_ifelse.c y=f(x)函数
#include <stdio.h>
int main()
{
int xdata;
int ydata;
puts("请输入一个整数x:");
scanf("%d",&xdata);
if(xdata<1){
printf("y的值为:%d",xdata);
}else if(xdata>=1 && xdata<10){
printf("y的值为:%d",xdata*2-1);
}else if(xdata>=10){
ydata=xdata*3-11;
printf("y的值为:%d",ydata);
}
return 0;
}
- task2_sw.c 输入分数,输出成绩等级
#include <stdio.h>
int main()
{
int score;
puts("请输入分数");
scanf("%d",&score);
switch(score){
case 101:
case 102:
case 103:
case 104:
case 105:
case 106:
case 107:
case 108:
case 109:
puts("非法成绩,请重新输入。");
return -1;
break;
}
switch(score/10){
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:
case 10:
puts("等级为A!");
break;
default:
puts("非法成绩,请重新输入。");
}
puts("done!");
return 0;
}
7. while循环爱你一万遍(28.3.10)
- demo_while.c 无限循环天气真好
#include <stdio.h>
int main()
{
while(5){
puts("天气真好。");
}
return 0;
}
- demo_while–.c 输入6遍天气真好,自减
#include <stdio.h>
int main()
{
int times;
times=6;
while(times){ //while只要条件为真,就一直执行;而if只执行一次
//避免死循环,到一定程度满足退出条件。除c51单片机代码外
puts("天气真好。");
//times=times-1;//自减
times--; //自减操作
}
return 0;
}
- demo_while++.c 输入6遍天气真好,自加
#include <stdio.h>
int main() //注意3个表达式
{
int times=0;//第1个表达式,条件的初始值
while(times<6){//第2个表达式,条件的临界值
puts("天气真好。");
printf("times=%d\n",times);
//times=times+1;//自加
times++; //自加//第3个表达式,条件发生变化
}
return 0;
}
- demo_while_exsum.c 用while计算1到100的和(29.3.11 while循环计算1到100所有数据之和)
#include <stdio.h>
int main() //注意3个表达式
{
int sum=0;//变量最好初始化为0,编码习惯
int data=1;//第1个表达式,条件的初始值
while(data<=100){//第2个表达式,条件的临界值
//printf("data=%d\n",data);
sum=sum+data;
data++; //第3个表达式,条件发生变化
}
printf("0到100的和为%d",sum);
return 0;
}
- demo_dowhile.c 先do一次,再while循环,条件内容判断多少次循环
#include <stdio.h>
int main()
{
int data=1;
/*while(data != 0){
puts("a test");
//data--;
}*/
//do{}while()
do{
puts("a test");
data--;
}while(data != 0);
return 0;
}
- demo_for.c for 循环和while循环二者无条件等价(31.3.13while的表达式及for循环等价引入)
#include <stdio.h>
int main()
{
int data;
for(data=0;data<6;data++){
puts("天气真好。");
puts("天气真不好。");
};
return 0;
}
for循环的3个表达式均可省略