第三次实验的总结与体会
Posted super123-
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第三次实验的总结与体会相关的知识,希望对你有一定的参考价值。
这周进行了第三次实验,这次实验感觉比上次要难,有些句式还是用错了,有点不能正确的表达编程,可能是上周没做实验,人有点懒了,下次不会这样了,我会严格要求自己继续努力的。本次实验如下:
Part1:验证性内容
1.从键盘上输入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("构成等边三角形 "); else if(a==b || a==c || b==c) printf("构成等腰三角形 "); else printf("构成一般三角形 "); } else printf("不能构成三角形 "); return 0; }
思考:替换上面编程里的if语句
替换if还是一样的结果。
拓展:把demo1.cpp中输入三边长并且判断三角形类型的代码放到while循环里,运行程序,观察结果,体 验并学习组合使用while和if带来的运行测试便捷性。
#include <stdio.h> int main() { double a,b,c; printf("输入三角形三边: "); while(scanf("%lf%lf%lf",&a,&b,&c)) { if(a+b>c && a+c>b && b+c>a) { if(a==b && a==c) printf("构成等边三角形 "); else if(a==b || a==c || b==c) printf("构成等腰三角形 "); else printf("构成一般三角形 "); } else printf("不能构成三角形 "); printf(" 输入三角形三边: "); } return 0; }
2.用scanf()函数输入一个百分制成绩(整型量),要求输出成绩等级A,B,C,D,E。其中,90~100分为A,80~89
分为B, 70~79分为C, 60~69分为D,60分以下为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("输入成绩有误! "); 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 ", 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("输入成绩有误! "); 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 ", grade); } return 0; }
3.分别运行程序demo5_1.cpp和demo5_2.cpp,结合运行结果,对比和理解控制语句continue和break的功能
#include <stdio.h> int main() { int i; for(i=1; i<=5; i++) { if (i%3 == 0) continue; printf("i=%d ",i); } return 0; }
#include <stdio.h> int main() { int i; for(i=1; i<=5; i++) { if (i%3 == 0) break; printf("i=%d ",i); } return 0; }
continue:不在执行continue后面的语句而是跳到下一个循环入口处执行下一个循环。break: 终止循环,不是跳到下一个循环周期而是退出循环。
#include <stdio.h> const int LINE=3; const int COLUME=5; int main() { int line; int col; for(line=1; line<=LINE; line++) { for(col=1; col<=COLUME; col++) { if(col%3 == 0) continue; printf("%5d", col); } printf(" "); } return 0; }
#include <stdio.h> const int LINE=3; const int COLUME=5; int main() { int line; int col; for(line=1; line<=LINE; line++) { for(col=1; col<=COLUME; col++) { if(col%3 == 0) break; printf("%5d", col); } printf(" "); } return 0; }
在两层嵌套循环中,内层循环中如果出现continue,是否影响外层循环?
在两层嵌套循环中,内层循环中如果出现break,是否影响外层循环?
continue和break语句在实验中应该都不影响外层的循环。
#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 ", max); printf("最小数为: %d ", min); return 0; }
#include<stdio.h> #include<math.h> int main() { int isprime(int n); int i,number=0,x=0,n; for(i=101;i<=200;i++) { if(isprime(i)) { number++,n++,x++; printf("%4d",i); } if(number==5) { number=0; printf(" "); } } printf(" 101`200之间共有%d个素数",x); return 0; } int isprime(int n) { int k; for(k=2;k<=sqrt(n);k++) if(n%k==0) return 0 ; }
#include<stdio.h> int main() { int a,b,c,d; for(a=1;a<=6;a++) { for(b=1;b<=6-a;b++) { printf(" "); } for(c=1;c<=2*a-1;c++) { printf("$"); } for(d=1;d<=a;d++) { printf(" "); } printf(" "); } return 0; }
这两道题有点难,刚开始一点头绪也没有,于是借鉴了书本,我得多做编程,不然都不知道怎么做了。
Part4:拓展实践。
#include <stdio.h> int main() { int a,b,c,d; for(a=0;a<=1;a++) for(b=0;b<=1;b++) for(c=0;c<=1;c++) for(d=0;d<=1;d++) if(a+b+c+d==1&&((!b&&d)||(b&&!d))==1&&((!b&&c)||(b&&!c))==1&&(!a&&b)||(a&&!b)==1&&(d||!d)==1) { if(a==1) printf("甲是小偷! "); else if(b==1) printf("乙是小偷! "); else if(c==1) printf("丙是小偷! "); else if(d==1) printf("丁是小偷! "); } return 0; }
虽然是看着书做的,但这道编程做的有点头大了。一直在报错,刚开始没发现哪里错了,可一遍又一遍还是错,才发现有些符号我用的搜狗输入法写的,唉,我这脑子。
总结与体会:
总的来说实验还是很成功,但其中也出现了不少小问题,可能是太粗心了,下次绝对不能粗心了,好好巩固知识,继续加油。
以上是关于第三次实验的总结与体会的主要内容,如果未能解决你的问题,请参考以下文章