实验1

任务1

+源代码task1.c

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

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

#include <stdio.h>
int main(void)
{
	int i;
	for(i=0;i<2;i++)
	{
	    printf(" O \n");
	    printf("<H>\n");
	    printf("I I\n");	
	}
	
	return 0;
 } 
点击查看代码
//打印一个字符小人

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

image

image

image

任务2

+源代码task2.c

点击查看代码
//从键盘上输入三个数据作为三角形边长,判断其能否构成三角形
//构成三角形的条件:任意三边之和大于第三边

#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; 
	 
 } 

+运行截图

image

任务3

+源代码task3.c

点击查看代码
#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;
}

+运行测试截图

image

+实验结论

当把源代码line9去掉后,重新编译运行,结果仅能完成一次输入后回车,第二次的问答无法完成。getchar的作用可能是暂停程序等待用户按回车。

任务4

+源代码task4.c

点击查看代码
//计算10亿秒约等于多少年,并打印输出
#include <stdio.h>
#include <math.h>
int main()
{
	int year;
	double sec = 1000000000.0;
	double year_d = sec/(365*24*3600);
	year = round(year_d);
	
	printf("10亿秒约等于%d年\n", year);
	return 0;
}

+运行测试截图

image

任务5

+源代码task5.c

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

#include <stdio.h>

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

+运行测试截图

image

image

image

任务6

+源代码task6.c

点击查看代码
#include <stdio.h>
#include <math.h>

int main()
{
	double a, b, c;
	double s, area;
	scanf("%lf%lf%lf", &a, &b, &c);
	s = (a+b+c)/2;
	area = sqrt(s*(s-a)*(s-b)*(s-c));
	printf("%.3f\n", a, b, c, area);
	return 0;
}

+运行测试截图

image

实验总结

通过本次的实验实践,我对double、getchar等在编译运行过程中产生的运行效果有了更深入的理解,对于其本质逻辑也有了初步认知。认识到不同的代码逻辑运行出的不同效果,会在补足代码时思考更简洁的逻辑结构。

posted @ 2026-10-19 20:01  Yachiyo_Chen  阅读(16)  评论(0)    收藏  举报