任务1
任务1
task1.c
#include<stdio.h> int main() { printf(" O \n"); printf("<H>\n"); printf("I I\n"); return 0; }
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;
}

task1.2.c
// 水平方向打印两个字符小人
#include <stdio.h>
int main()
{
// 每一行同时输出两个小人的对应部分,中间用制表符\t分隔
printf(" O \t O \n");
printf("<H>\t<H>\n");
printf("I I\tI I\n");
return 0;
}

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

#include <stdio.h>
int main( )
{
char ans1, ans2; // 保存用户输入的答案
printf("每次课及时预习/复习了没?(是-输入y或Y,否-输入n或N) :");
ans1 = getchar();
getchar(); // 核心作用:吃掉输入第一个答案后用户按下的「回车换行符\n」,避免第二个getchar()直接读到换行
printf("\n动手敲代码实践了没?(是-输入y或Y,否-输入n或N) :");
ans2 = getchar();
// 判断两次回答都是y(大小写均可)
if ( (ans1 == 'y' || ans1 == 'Y') && (ans2 == 'y' || ans2 == 'Y') )
printf("\n罗马不是一天建成的,继续保持哦:)\n");
else
printf("\n罗马不是一天毁灭的,我们来建设吧\n");
return 0;
}

如果去掉那一行,在输入第一个字母时结果就会直接输出,因为如果没有这段代码
第一个答案后按下的回车会被第二个getchar()直接读到,让程序失效
任务4
task4.c
// 要加数学库头文件
#include <stdio.h>
#include <math.h>
int main()
{
int year;
const long long total_seconds = 1000000000LL; // 10亿秒
const int seconds_per_year = 365 * 24 * 60 * 60; // 平年一年的秒数
year = (int)round( (double)total_seconds / seconds_per_year );
printf("10亿秒约等于%d年\n", year); // 结果输出为32年
return 0;
}

任务5
// 摄氏温度转换成华氏温度
#include <stdio.h>
int main() {
double c, f;
scanf("%lf", &c);
f = 9.0 / 5.0 * c + 32;
printf("摄氏度c = %.2f时,华氏温度f = %.2f\n\n", c, f);
return 0;
}

任务6
#include<math.h>
#include<stdio.h>
int main()
{
double a, b, c, s, area;
scanf("%lf %lf %lf", &a, &b, &c);
s = (a+b+c)/2.0;
area = sqrt(s*(s-a)*(s-b)*(s-c));
printf("Èý½ÇÐεÄÃæ»ý=%.3f",area);
return 0; }

浙公网安备 33010602011771号