C语言


[例4.7] 输入考试成绩的等级,打印出百分制分数段
(A等:85分以上,B等:70~84,C等:60~69,D等:60分以下)。
main()
{ char grade;
scanf("%c",&grade);
if(grade=='A') printf("85~100\n");
else if(grade=='B') printf("70~84\n");
else if(grade=='C') printf("60~69\n");
else if(grade=='D') printf("<60\n");
else printf("Error\n");
}

[例4.8] 判断键盘输入的一个字符是否为大写字母,如果是则转换为小写字母,否则不转换。输出处理后的字符。
main()
{ char ch;
scanf("%c",&ch);
ch=(ch>='A'&&ch<='Z')?(ch+32):ch; /* 括号可不加 */
printf("%c\n",ch);
}

[例4.9] 在例2.9的计算机随机出一道两位数的加法题中,当用户回答完毕后,给出适当的评语。
#include <stdlib.h>
main()
{ int a,b,c,d;
char q;
randomize();
a=random(90)+10; /* random(90)产生0~89之间的随机数 */
b=random(90)+10;
c=a+b;
printf("计算:%d + %d =",a,b);
scanf("%d",&d);
if(c==d) /* 用户输入的值与计算的值相同 */
printf("回答正确!\n");
else
{ printf("回答错误,您输入的数是:%d。\n",d);
printf("要看答案吗(y/n)?");
scanf("%c%c",&q,&q);
if(q=='y'|| q=='Y')
printf("正确答案是:%d\n",c);
}
}

[例4.10] 输入年、月,输出该月有多少天。
main()
{ int year,month,days;
printf("输入年,月:");
scanf("%d,%d",&year,&month);
switch(month)
{ case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:days=31;break;
case 4:
case 6:
case 9:
case 11:days=30;break;
case 2: if(year%4==0 && year%100!=0 || year%400==0)
days=29;
else days=28;
break;
}
printf("%d年%d月有%d天\n",year,month,days);
}

