实验1
任务1:
水平方向
#include <stdio.h>
int main()
{
printf(" O O \n");
printf("<H> <H>\n");
printf("I I I I\n");
return 0;
}
竖直方向
#include <stdio.h> int main() { printf(" O \n"); printf("<H> \n"); printf("I I \n"); printf(" O \n"); printf("<H> \n"); printf("I I \n"); return 0; }
任务2:
// 从键盘上输入三个数据作为三角形边长,判断其能否构成三角形 // 构成三角形的条件: 任意两边之和大于第三边 #include <stdio.h> int main() { double a, b, c; // 输入三边边长 scanf_s("%lf%lf%lf", &a, &b, &c); // 判断能否构成三角形 // 补足括号里的逻辑表达式 if (a+b>c&&a+c>b&&b+c>a) printf("能构成三角形\n"); else printf("不能构成三角形\n"); return 0; }
任务3:
#include <stdio.h> int main() { char ans1, ans2; // 用于保存用户输入的答案 printf("每次课前认真预习、课后及时复习了没? (输入y或Y表示有,输入n或N表示没有) :"); ans1 = getchar(); // 从键盘输入一个字符,赋值给ans1 getchar(); // 思考这里为什么要加这一行。试着去掉这一行,看看对运行有没有影响。 printf("\n动手敲代码实践了没? (输入y或Y表示敲了,输入n或N表示木有敲) : "); ans2 = getchar(); if ((ans1=='y'||ans1=='Y')&&(ans2=='y'||ans2=='Y')) // 已补足 printf("\n罗马不是一天建成的, 继续保持哦:)\n"); else printf("\n罗马不是一天毁灭的, 我们来建设吧\n"); return 0; }
回答问题:删去line9后,出现如下结果:
原因:步骤一赋值给ans1后,按下回车键进入下一步,若无line9的getchar(),回车将直接作为输入值赋给步骤二中的ans2,进而导致程序直接终止
任务4:
#include <stdio.h> int main() { double x, y; char c1, c2, c3; int a1, a2, a3; scanf("%d%d%d", &a1, &a2, &a3); \\错误点 printf("a1=%d,a2=%d,a3=%d\n", a1, a2, a3); scanf("%c%c%c", &c1, &c2, &c3); printf("c1=%c,c2=%c,c3=%c\n", c1, c2, c3); scanf("%lf%lf", &x, &y); \\错误点 printf("x=%lf,y=%lf\n", x, y); return 0; }
任务5:
#include <stdio.h> #include <math.h> int main() { int year; double year_1; //补足代码 year_1=1e9/31536000; year=round(year_1); printf("10亿秒约等于%d年\n", year); return 0; }
任务6:
#include <stdio.h> #include <math.h> int main() { double x,ans; while(scanf("%lf",&x) !=EOF) { ans=pow(x,365); printf("%.2f的365次方: %.2f\n", x, ans); printf("\n"); } return 0; }
任务7:
//摄氏温度与华氏温度的转换 #include <stdio.h> int main() { double C,F; while(scanf("%lf",&C) !=EOF) { F=C*9/5+32; printf("华氏温度为%.2lf",F); } return 0; }
任务8:
#include <stdio.h> #include <math.h> int main() { double a,b,c,s,t,S; while(scanf("%lf%lf%lf",&a,&b,&c) !=EOF) { s=(a+b+c)/2; t=s*(s-a)*(s-b)*(s-c); S=pow(t,0.5); printf("三角形面积为%.3lf",S); } return 0; }
实验总结:一味复制不能提高编程技术,只有自己体验,自己改错,才能从一条条代码中汲取经验,走向更好的未来。