实验三
Part1: 验证性内容
从键盘上输入3个数,让它们代表3条线段的长度,编写一个c程序判断这3条线段组成的三角形属于什么类
型(一般三角形、等腰三角形、等边三角形或不构成三角形)。
#include <stdio.h> int main() { double a,b,c; scanf("%lf %lf %lf", &a, &b, &c); if(a+b>c && a+c>b && b+c>a) { if(a==b && a==c) printf("构成等边三角形\n"); else if(a==b || a==c || b==c) printf("构成等腰三角形\n"); else printf("构成一般三角形\n"); } else printf("不能构成三角形\n"); return 0; }
while改写
#include <stdio.h> int main(){ double a,b ,c; while(scanf("%lf %lf %lf",&a,&b,&c)){ if(a+b>c && a+c>b && b+c>a){ if(a==b && a==c) printf("构成等边三角形\n"); else if(a==b || a==c || b==c) printf("构成等腰三角形\n"); else printf("构成一般三角形\n"); } else printf("不能构成三角形\n"); printf("\n输入三角形三边:\n"); } return 0; }
用scanf()函数输入一个百分制成绩(整型量),要求输出成绩等级A,B,C,D,E。
#include <stdio.h> int main() { int score; char grade; while(1) { printf("输入学生成绩: "); if(scanf("%d",&score) == 0) break; if(score<0 || score > 100) { printf("输入成绩有误!\n\n"); continue; } else if(score>=90 && score<=100) grade = 'A'; else if(score>=80 && score<=89) grade = 'B'; else if(score>=70 && score<=79) grade = 'C'; else if(score>=60 && score <=69) grade = 'D'; else grade = 'E'; printf("等级为: %c\n\n", grade); } return 0; }
switch改写
#include <stdio.h> int main(){ int score; char grade; while(1){ printf("输入学生成绩:"); if(scanf("%d",&score)==0) break; if(score<0 || score>100){ printf("输入成绩有误!\n\n"); continue; } switch(score/10){ case 10: case 9: grade='A';break; case 8: grade='B';break; case 7: grade='C';break; case 6: grade='D';break; default: grade='E'; } printf("等级为:%c\n\n",grade); } return 0; }
break和continue
break:导致程序终止包含它的循环,并进行程序的下一阶段(整个循环后面的语句),即,不是跳到下一个循环周期而是退出循环。如果break语句包含在嵌套循环里,它只跳出最里面的
continue:循环语句里有此语句时,程序运行到此语句时,不在执行循环体里continue后面的语句而是跳到下一个循环入口处执行下一个循环。
内层循环中如出现continue,则继续执行下一次循环,不影响外层循环。break跳出循环,不再执行循环内的任何语句,不影响外层循环。
Part 2.补足程序,使得程序运行
#include<stdio.h> int main(){ int max,min,n,number; n=1; printf("请输入第%d个数字:",n); scanf("%d",&number); max=number; min=number; for(n=2;n<=5;++n) { printf("请输入第%d个数字:",n); scanf("%d",&number); if(number>max) max=number; if(number<min) min=number; } printf("最大数为:%d",max); printf("最小数为:%d",min); return 0; }
Part3:编程练习
编程输出101~200之间所有素数,并输出这一区间内素数个数
#include<stdio.h> #include<math.h> int main() { int m,n,i;
for(n=101;n<=200;++n) { m=sqrt(n); for(i=2;i<=m;++i) if(n%i==0)break; if(i>m)
printf("%d\t",n); }
return 0; }
星星
#include<stdio.h> int main() { int a,b; for(a=0;a<=4;a++) { for(b=4-a;b>=0;b--) printf(" "); for(b=1;b<=a*2+1;b++) printf("*"); printf("\n"); } return 0; }