task1
任务1
任务1-1
运行代码
点击查看代码
#include <stdio.h>
int main()
{
printf(" O O\n");
printf("<H><H>\n");
printf("I II I\n");
return 0;
}

任务1-2
运行代码
点击查看代码
#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("%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();
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之后,无论第一个问题输入什么,都会直接跳过第二个问题得到“我们来建设”的回答。
由于实在没有思路,我询问了AI:getchar() 有什么作用,AI的回答是:是从“输入缓冲区”读取字符的作用。当我们输入“Y”时,缓冲区里存在“Y”和“\n”两个字符,那么line9的作用就是“吃掉”“\n”。所以当line9被去掉,第二个问题就会取到“\n”直接跳过,if判断失败。
由此产生了新的问题:line9只能”吃掉“一个字符。经过实践发现:如果第一个问题输入”Y“后点击空格再回车,那么还是会有上述的结果,所以可以在getchar()后加上while(getchar() !='n');【AI提出的建议】
任务四
运行代码
点击查看代码
#include <stdio.h>
#include <math.h>
int main()
{
int year;
float second = 1000000000.0;
year = round(second/(60*60*24*365));
printf("十亿秒约等于%d年\n",year);
return 0;
}
运行截图

任务五
运行代码
点击查看代码
#include <stdio.h>
int main()
{
double c,f;
scanf("%lf",&c);
f = c*9/5+32.00;
printf("摄氏度c = %.2f时,华氏温度f = %.2f\n\n",c,f);
return 0;
}
运行截图

任务六
运行代码
点击查看代码
#include <stdio.h>
#include <math.h>
int main()
{
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
float s,area;
s = (a+b+c)/2.0;
area = sqrt(s*(s-a)*(s-b)*(s-c));
printf("a = %d, b = %d, c = %d, area = %.3f\n",a,b,c,area);
return 0;
}
运行截图

实验总结
1通过这次实验我感受到了编程在生活各方面的实际应用,也锻炼了写代码的基础能力,对编程的各种规则以及符号有了更深的了解。
浙公网安备 33010602011771号