P177
#include<stdio.h>
int main (void) {
const int FREEZING=0;
float tem;
int colddays=0;
int alldays=0;
while(scanf("%f",&tem)==1)
{
alldays++;
if(tem<FREEZING)
{
colddays++;
}
}
if(alldays!=0)
{
printf("%d days total,%.1f%% were below freezing",
alldays,100.0*colddays/alldays);
if(alldays==0)
{
printf("no data");
}
return 0;
}
}
ifelse
if(expression)
statement1
else
statement2
ch=getchar(); //== scanf("%c",&ch);
putchar(ch(; // = printf("%c",ch);
P181 CYpher1
#include<stdio.h>
#define SPACE ' '
int main(void){
char ch;
ch=getchar();
while(ch !='\n')
{
if(ch == SPACE)
putchar(ch);
else
putchar(ch+1);
ch=getchar();
}
putchar(ch);
return 0;
}
//while((ch=getchar())!=‘\n’){
}
C语言有一系列专门处理字符的函数,包含在ctype.h中
#include<stdio.h>
#include<ctype.h>
int main(void){
char ch;
while((ch=getchar())!='\n'){
if(isalpha(ch)){
putchar(ch+1);
}else{
putchar(ch);
}
}
return 0;
}
多重选择ifelse
#include<stdio.h>
#define RATE1 0.13
#define RATE2 0.15
#define RATE3 0.3 //前三个级别的费率
#define RATE4 0.34 //前四个级别的费率
#define BREAK1 360
#define BREAK2 468
#define BREAK3 720 //电费划分的三个级别
#define BASE1 (RATE1*BREAK1) //使用360度
#define BASE2 (BASE1+(RATE2*(BREAK2-BREAK1)))
#define BASE3 (BASE1+BASE2+(RATE3*(BREAK3-BREAK2)))
int main(void){
double kwh; //使用的电
double bill; //需要交的电费
while(scanf("%lf",&kwh)){
//lf对应double
if(kwh<=BREAK1){
bill=RATE1*kwh;
} else if(kwh<=BREAK2){
bill=BASE1+(kwh-BREAK1)*RATE2;
} else if(kwh<=BREAK3){
bill