实验1

task1_1

+源代码:

点击查看代码
#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;
} 
 
+运行结果:

task1_1

task1_2:

+源代码:

点击查看代码
#include <stdio.h>
int main(){
	printf(" o   o \n");
	printf("<H> <H>\n");
	printf("I I I I\n");
	return 0;
} 
 
+运行结果: ![task1_2](https://img2024.cnblogs.com/blog/3861564/202610/3861564-20261016141134661-816996650.png) #task2: +源代码:
点击查看代码
#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](https://img2024.cnblogs.com/blog/3861564/202610/3861564-20261016143836387-1491886263.png) ![task2_2](https://img2024.cnblogs.com/blog/3861564/202610/3861564-20261016143841589-591252887.png) ![task2_3](https://img2024.cnblogs.com/blog/3861564/202610/3861564-20261016143849068-678826280.png) #task3: +源代码:
点击查看代码
#include <stdio.h>
#include <ctype.h>

int main()
{
	char ans1, ans2; // 保存用户输入的答案

	printf("每次课及时预习/复习了没? (是-输入y或Y, 否-输入n或N) :  ");
	ans1 = getchar(); // 从键盘输入一个字符,赋值给ans1

	getchar(); // 去掉这一行,重新编译运行,观察是否影响程序结果

	printf("\n动手敲代码实践了没? (是-输入y或Y, 否-输入n或N) :  ");
	ans2 = getchar();
	ans1 = tolower(ans1);
	ans2 = tolower(ans2);
	if (ans1 == 'y' && ans2 == 'y') // 待补足,判断ans1和ans2都是y(大小写均可)
		printf("\n罗马不是一天建成的, 继续保持哦:)\n");
	else
		printf("\n罗马不是一天毁灭的, 我们来建设吧\n");

	return 0;
}
+运行结果: ![task3_1](https://img2024.cnblogs.com/blog/3861564/202610/3861564-20261016144415787-1827085701.png) ![task3_2](https://img2024.cnblogs.com/blog/3861564/202610/3861564-20261016144419274-858809622.png) ![task3_3](https://img2024.cnblogs.com/blog/3861564/202610/3861564-20261016144423359-1186466545.png) +问题:运行结果就是ans2读取不到字符,直接输出结果,因为按回车键会被ans2读取。 #task4: +源代码:
点击查看代码
// 计算10亿秒约等于多少年,并打印输出
#include <stdio.h>
#include <math.h>
int main() 
{
    int year;

    // 补足代码
    // ×××
    year = round(1000000000 / (365 * 24 * 60 * 60));

    printf("10亿秒约等于%d年\n", year);
    return 0;
}
+运行结果:

task4

task5:

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

#include <stdio.h>

int main() {
    double c, f;

    scanf("%lf", &c);

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

    return 0;
}
+运行结果:

task

task5_1

task4_2

task6:

+源代码:

点击查看代码
#include<stdio.h>
#include<math.h>
int main(){
	int a,b,c;
	scanf("%d%d%d", &a,&b,&c);
	double s,area;
	s = (double)(a + b + c) / 2;
	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;
}
+运行结果:

task6_1

task6_2

task6_3

实验总结:

回车键也会作为字符被占用,若不用getchar过度会导致下一个字符读取异常,double类型的数据最好在计算公式的前面加一个(double)转换。

posted @ 2026-10-16 15:07  Sword_w  阅读(6)  评论(0)    收藏  举报