实验三

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;
    
}

  

 

posted on 2019-04-16 22:20  TiAmoz  阅读(204)  评论(2编辑  收藏  举报