实验三
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;
}

浙公网安备 33010602011771号