实践1

任务1

源代码task1_1.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;	
} 

运行测试截图

屏幕截图(18)

 

源代码task1_2.c

#include <stdio.h>
int main()
{
	printf(" o      o \n");
	printf("<H>    <H>\n");
	printf("I I    I I\n");
	
	return 0;	
}

运行测试截图

屏幕截图(12)

 

任务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;
}

运行测试截图

屏幕截图(13)

 

任务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')) // 待补足,判断ans1和ans2都是y(大小写均可)
		printf("\n罗马不是一天建成的, 继续保持哦:)\n");
	else
		printf("\n罗马不是一天毁灭的, 我们来建设吧\n");

	return 0;
}

  

运行测试截图

屏幕截图(20)

 

问题回答

分析:gatchar()的作用是从标准输入读取一个字符,返回读到字符的ASCII码;缺少它使程序跳过了第二次输入,直接读取到换行符,无法得到我们想要的结果。

屏幕截图(19)

 

结论:当把源代码line9去掉后,只输入第一个问题的答案,且不论你输入的是y还是n,它最后都会跳过第二次输入直接给出“罗马不是一天毁灭的, 我们来建设吧”这一结果。

任务4

源代码task4.c

// 计算10亿秒约等于多少年,并打印输出
#include <stdio.h>

int main() 
{
    int year;
    int total_seconds = 1000000000;
    int seconds_per_year = 365 * 24 * 60 * 60;
    year = total_seconds / seconds_per_year;

    // 补足代码
    // ×××

    printf("10亿秒约等于%d年\n", year);
    return 0;
}

  

运行测试截图

屏幕截图(15)

 

任务5

源代码task5.c

// 摄氏温度转换成华氏温度

#include <stdio.h>

int main() {
    double c, f;

    scanf("%lf", &c);
    f = c * 1.8 + 32;

    // 待补足: 摄氏温度-> 华氏温度
    // xxx
    
    printf("摄氏度c = %.2f时, 华氏温度f = %.2f\n\n", c, f);

    return 0;
}

  

运行测试截图

屏幕截图(16)

 

任务6

源代码task6.c

#include <stdio.h>
#include <math.h>
int main() {
double a, b, c;
double s, area; 

printf("请输入三角形的三边长 a, b, c(用空格或逗号分隔):");

if (scanf("%lf %lf %lf", &a, &b, &c) != 3) {
printf("输入无效,请确保输入三个数字。\n");
return 1;
}

s = (a + b + c) / 2.0;

area = sqrt(s * (s - a) * (s - b) * (s - c));

printf("三角形的面积为:%.3f\n", area);
return 0;
}

  

运行测试截图

屏幕截图(17)

 

 实验总结

1.通过本次实践,我加深了对字符和运算符的理解,并基本掌握了字符与运算符的作用和使用要求,能够在编写代码时正确输入且正常运行;

2.本次实践也让我学习到新的代码,增长了我的理论知识库。

posted @ 2026-10-16 19:03  张雨婷  阅读(12)  评论(1)    收藏  举报