实验三




 

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

 

if(a+b>c && a+c>b && b+c>a) {
    if(a==b || a==c || b==c) {
        if (a==b && a==c)
        printf("构成等边三角形\n");
         else
        printf("构成等腰三角形\n");
        }
    else
    printf("构成一般三角形\n");
    }
else
printf("不能构成三角形\n");
return 0;
}
#include <stdio.h>
int main() {
double a,b,c;
printf("输入三角形三边:\n");
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;
}

 

 
#include <stdio.h>
int main() {
int score; // 用于存放百分制分数
char grade; // 用于存放等级制分数(取值'A', 'B','C','D', 'E')
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;
}
#include <stdio.h>
int main() {
int score; // 用于存放百分制分数
char grade; // 用于存放等级制分数(取值'A', 'B','C','D', 'E')
while(1) {
printf("输入学生成绩: ");
if(scanf("%d",&score) == 0) // 如果检测到没有成绩输入,则结束整个循环
break;
if(score<0 || score > 100) {
printf("输入成绩有误!\n\n");
continue; // 结束本次循环,开始下一次循环
}
switch(score/10) { // 使用switch进行分数等级判断
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;
}



 

#include <stdio.h>
int main() {
int i;
// 在循环语句中使用continue
for(i=1; i<=5; i++) {
if (i%3 == 0) // 如果i是3的倍数,则结束本次循环,开始下一次循环
continue;
printf("i=%d\n",i);
}
return 0;
}

#include <stdio.h>
int main() {
int i;
// 在循环语句中使用continue
for(i=1; i<=5; i++) {
if (i%3 == 0) // 如果i是3的倍数,则结束整个循环
break;
printf("i=%d\n",i);
}
return 0;
}

 

int main() {
int line; // 定义变量line, 用来控制行数
int col; // 定义变量col, 用来控制列数
// 输出LINE行信息
for(line=1; line<=LINE; line++) {
// 每一行中,利用循环,输出各列信息
for(col=1; col<=COLUME; col++) {
if(col%3 == 0) // 如果col是3的倍数,则结束本次循环,开始下一次循环
continue;
printf("%5d", col);
}
printf("\n"); // 每输出完一行,换行
}
return 0;
}

#include <stdio.h>
const int LINE=3; // 定义符号常量LINE
const int COLUME=5; // 定义符号常量COLUME
int main() {
int line; // 定义变量line, 用来控制行数
int col; // 定义变量col, 用来控制列数
// 输出LINE行信息
for(line=1; line<=LINE; line++) {
// 每一行中,利用循环,输出各列信息
for(col=1; col<=COLUME; col++) {
if(col%3 == 0) // 如果col是3的倍数,则结束内层循环体
break;
printf("%5d", col);
}
printf("\n"); // 每输出完一行,换行
}
return 0;
} 

#include <stdio.h>
int main() {
int number, max, min, n;
n=1;
printf("输入第%d个数: ", n);
scanf("%d", &number);
max = number;
min = number;
while(n<5) {
n++;
printf("输入第%d个数: ", n);
scanf("%d", &number);
if(max<=number)
max = number;
else if(min>=number)
min = number;
}
printf("最大数为: %d\n", max);
printf("最小数为: %d\n", min);
return 0;
}

 Part3:编程练习
编程输出101~200之间所有素数,并输出这一区间内素数个数。

#include<stdio.h>
#include<math.h> 
int main()
{
    int i,n,m,k=0;
    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);    
          k++;
        }
    }    
    printf("共有%d个素数",k);
    return 0;
}

 


#include<stdio.h>
int main(){
    int line,i;
    for(line=1;line<=5;line++)
    {
    
    for(i=1;i<=5-line;i++)
    printf(" ");
    for(i=1;i<=2*line-1;i++)
    {
    printf("*")    ;
    }
    printf("\n");
    
    }
    return 0;
}



 实验结论与心得体会:continue是结束本次循环开始新的循环,break是结束本层循环;且两个都不会影响外层循环;在做输出101到200之间的素数实验时没有弄清内层外层循环而反复找错,

for语句里面是;而不是,还有就是不知道错在哪就按照程序自己算几步,c语言就是在犯错中进步。

posted @ 2019-04-15 22:53  24小科比  阅读(145)  评论(2)    收藏  举报