实验任务1
点击查看代码
#include <stdio.h>
int main()
{
printf(" 0 \n");
printf("<H>\n");
printf("I I\n");
printf(" 0 \n");
printf("<H>\n");
printf("I I\n");
return 0;
}
![task1_1]()
点击查看代码
#include <stdio.h>
int main()
{
printf(" 0 0 \n");
printf("<H> <H>\n");
printf("I I I I\n");
return 0;
}
![task1_2]()
实验任务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;
}
![task2_1]()
![task2_2]()
![task2_3]()
实验任务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;
}
![task3_1]()
![task3_2]()
![task3_3]()
![task3_4]()
- 回答问题
删除第9行getchar();
现象:输入第一个字符回车后,程序跳过第二次输入,直接输出else结果
分析:输入回车产生的 \n 留在缓冲区,被 ans2=getchar() 读到,ans2不是y/Y
结论: getchar(); 用来吸收回车换行,防止残留换行干扰后续字符读取
实验任务4
点击查看代码
#include <stdio.h>
#include <math.h>
int main()
{
int year;
double a=1000000000;
double b=a/(60*60*24*365);
year=round(b);
printf("10亿秒约等于%d年\n",year);
return 0;
}
![task4]()
实验任务5
点击查看代码
#include <stdio.h>
int main()
{
double c,f;
scanf("%lf",&c);
f=(9.0/5)*c+32;
printf("摄氏度c=%.2f时,华氏温度f=%.2f\n\n",c,f);
return 0;
}
![task5]()
实验任务6
点击查看代码
#include <stdio.h>
#include <math.h>
int main()
{
int a,b,c;
double s,area;
scanf("%d %d %d",&a,&b,&c);
s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("a=%d,b=%d,c=%d,area=%.3lf",a,b,c,area);
return 0;
}
![task6]()
实验总结
- 整数除法和浮点除法的区别:两个整型数字直接相除会直接舍弃小数,必须把其中一个数值改为浮点数(如9.0/5)
- 通过不断试错与改正,我体会到C语言中整型与浮点运算的差异,也在不断调试中积累经验、取得进步