实验一

任务一

task1.c
源代码:

点击查看代码
// 打印一个字符小人
#include <stdio.h>
int main() 
{
printf(" O \n");
printf("<H>\n");
printf("I I\n");
return 0;
} 
运行测试截图:

屏幕截图 2026-10-17 160825
task1_1.c
源代码:

点击查看代码
//打印一个字符小人

#include <stdio.h>
int main()
{
	printf(" 0     0\n");
	printf("<H>   <H>\n");
	printf("I I   I I\n");
	
	return 0;
 } 
运行测试截图:

屏幕截图 2026-10-17 164523
task1_2.c
源代码:

点击查看代码
// 打印一个字符小人
#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;
} 
运行测试截图:

屏幕截图 2026-10-17 165154

任务二

源代码:

点击查看代码
// 从键盘上输入三个数据作为三角形边长,判断其能否构成三角形
// 构成三角形的条件: 任意两边之和大于第三边
#include <stdio.h>
int main() 
{
    double a, b, c;
    
    scanf("%lf%lf%lf", &a, &b, &c);
    
    if(a+b>c && b+c>a && a+c>b)
        printf("能构成三角形\n");
    else
        printf("不能构成三角形\n");
    return 0;
}
运行测试截图:

屏幕截图 2026-10-17 204809

屏幕截图 2026-10-17 205303

屏幕截图 2026-10-17 205351

任务三

源代码:

点击查看代码
#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;
 } 
运行测试截图:

屏幕截图 2026-10-17 212149

屏幕截图 2026-10-17 212208

屏幕截图 2026-10-17 213339

屏幕截图 2026-10-17 213408
问题回答:
去掉getchar(),将会影响运行结果,getchar()的作用是吸收回车,让ans1拿到结果后点击回车,能继续进行下一个问题的提问使用户回答,如果删掉,程序不等用户输入第二个问题,直接就判断结束了。
结论:当需要用户回答一个问题后继续进行下一个问题的回答时,要在两行问题代码中间加入一行getchar()。

任务四

源代码:

点击查看代码
// 计算10亿秒约等于多少年,并打印输出
#include <stdio.h>
#include <math.h>

int main() 
{
	int year;
	
	year=round(1000000000.0/(365*24*60*60));
	
	printf("10亿秒等于%d\n",year) ;
	return 0;
	
}
运行测试截图:

屏幕截图 2026-10-18 112101

任务五

源代码:

点击查看代码
//摄氏温度转换成华氏温度

#include <stdio.h>

int main()
{
	double c,f;
	
	scanf("%lf",&c);
	
	f=double(9*c/5+32);
	
	printf("摄氏度c = %.2f时,华氏度f = %.2f\n\n",c,f);
	
	return 0;
 } 

运行测试截图:

屏幕截图 2026-10-18 113228

屏幕截图 2026-10-18 113300

屏幕截图 2026-10-18 113323

任务六

源代码:

点击查看代码
//用海伦公式计算三角形面积

#include <stdio.h>
#include <math.h>

int main()
{
	int a,b,c;double s,x;
	
	scanf("%d%d%d",&a,&b,&c);
	s=double((a+b+c)/2.0);
	x=sqrt(s*(s-a)*(s-b)*(s-c));
	printf("a = %d,b = %d,c = %d,x = %.3f\n",a,b,c,x);
	
	return 0;
}
运行测试截图:

屏幕截图 2026-10-18 120551

屏幕截图 2026-10-18 120610

屏幕截图 2026-10-18 120631

实验总结

在此次实验中,我觉得代码无意识打错是小问题,真正头疼的是如何利用所学知识编撰出可运行的代码以及语法上的错误,比如:

  • 强制转换写法错误
    s=double((a+b+c)/2);
    (a+b+c)/2:a,b,c 是 int,整数除法,会直接舍去小数!
    正确写法:s = (a + b + c) / 2.0;
  • 变量类型错误
    s、x(面积)是小数,不能定义成 int 整型,要改成 double。
    int s,a,b,c; → double s,x; int a,b,c;
  • sqrt' was not declared in this scope
    sqrt() 求平方根函数,需要引入头文件 #include <math.h>
    这些我犯下的错误都对应了所学知识,是我在实践中疏忽掉了,在报错后检查发现错误有了更深刻的认识。
posted @ 2026-10-18 12:30  魏曦  阅读(4)  评论(0)    收藏  举报