#include<stdio.h> int main() { const int low_t=0; float temperature; int all_day=0; int cold_day=0; printf("Please enter the list of daily low temperature./n"); printf("Useing Celsius,and enter q to quit./n"); while(scanf("%f",&temperature)==1){ all_day++; if(temperature<low_t) cold_day++; } if(all_day!=0) printf("%d days total:%.1f%% days were below freezing./n", all_day,100.0*((float)cold_day/all_day));//注意浮点运算时可能会出现的截尾 if(all_day=0) printf("No data entered/n"); getch(); return 0; } #include<stdio.h> int main(){ const char SPACE=' '; char ch; ch=getchar(); while(ch!='/n') { if(ch==SPACE) putchar(ch); else putchar(ch+1); ch=getchar(); } putchar(ch); getch(); return 0; } //改变输入,只保留非字母字符 #include<stdio.h> #include<ctype.h>//为isalpha()提供原型。 int main(void) { char ch; while((ch=getchar())!='/n') { if(isalpha(ch))//如果是字母 putchar(ch+1);//改变它 else putchar(ch); } putchar(ch);//打印换行字符 getch(); return 0; } //计算用电费用 #include<stdio.h> int main(){ const double RATE1=0.12589;// 费率 const double RATE2=0.17901; const double RATE3=0.20971; const double BREAK1=360.0; const double BREAK2=680.0; double base1,base2; double kwh,bill; base1=RATE1*BREAK1; base2=base1+(BREAK2- BREAK1)*RATE2; printf("Please enter the kwh used:"); scanf("%lf",&kwh); if(kwh<=BREAK1) bill=kwh*RATE1; else if(kwh<=BREAK2) bill=base1+(kwh-BREAK1)*RATE2; else bill=base1+base2+(kwh-BREAK2)* RATE3; printf("The charge for %.1f kwh is $%.4f/n",kwh,bill); getch(); return 0; } //使用嵌套if显示一个数的约数。 #include<stdio.h> #include<stdbool.h>//包含了下面的bool。 int main() { unsigned long num; unsigned long div; bool isprime; printf("Please enter an integer for analysis:/n"); printf("enter q to quit./n"); while(scanf("%lu",&num)==1) { for(div=2,isprime=true;(div*div)<=num;div++)//初始值为真。 { if(num%div==0) { if((div*div)!=num) printf("%lu is divsible by %lu and %lu./n", num,div,num/div); else printf("%lu is divsible by %lu./n",num,div); isprime=false;//不是一个素数。定义为假。 } } if(isprime)//没有进循环的话,isprime为真。 printf("%lu is prime./n",num); printf("Please enter an integer for analysis:/n"); printf("enter q to quit./n"); } printf("Bye!"); getch(); return 0; } //逻辑运算符,&&,||,! #include<stdio.h> int main() { const char C='.'; char ch; int charcount=0; while((ch=getchar())!=C) { if(ch!='"'&&ch!='/'')//注意单引号的写法 charcount++; } printf("/"There are %d charaters./"/n",charcount); getch(); return 0; } /统计字符,单词,行数 #include<stdio.h> #include<ctype.h> #include<stdbool.h> #define STOP '|' int main() { char c;//读入字符 char prev;//前一个字符 long n_chars=0L;//字符数 int n_lines=0;//行数 int n_words=0;//单词数 int p_line=0;//不完整的行数 bool inword=false;//如果c在一个单词中,则inword是true printf("Please enter text to be analyzed(| to terminate):/n"); prev='/n'; while((c=getchar())!=STOP) { n_chars++;//统计字符 if(c=='/n') { n_lines++;//统计行 } if(!isspace(c)&&!inword) { inword=true; n_words++;//统计单词 } if(isspace(c)&&inword) inword=false; prev=c; } if(prev!='/n') p_line=1; printf("The characters=%ld,words=%d,lines=%d.",n_chars,n_words,n_lines); printf("The p_line is %d/n",p_line); getch(); return 0; } //使用条件运算符 #include<stdio.h> int main() { const int COVERAGE=200; int sq_feet; int cans; printf("Enter number of square feet to be painted:/n"); while(scanf("%d",&sq_feet)==1) { cans=sq_feet/COVERAGE; cans+=((sq_feet%COVERAGE)==0)? 0:1; printf("You need %d %s of paint./n",cans,cans==1? "can":"cans"); printf("Please enter next value(q to quit)/n"); } getchar(); return 0; } #include<stdio.h> int main() { const float MIN=0.0f; const float MAX=100.0f; float score; float n=0; float total=0.0f; float min=MAX' uj; float max=MIN; printf("Please enter the first score:/n"); while(scanf("%f",&score)==1) { if(score>MAX||score<MIN) { printf("%0.1f is an invalid value.Try again./n",score); continue ;//跳过循环。 } printf("Accepting %0.1f:/n",score); min=(score<min)?score:min;//注意这里 max=(score>max)?score:max; total+=score; n++; printf("Enter next score( q to quit)/n"); } if(n>0) { printf("Aveage of %d scores is %0.1f./n",n,total/n); printf("The min is %0.1f.max is %0.1f./n",min,max); } else printf("No valid scores were enterd/n"); getch(); return 0; }