第一次作业(何丽娜)

任务1

源代码1&2:

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 int main()
 4 {
 5  printf(" o \n");
 6  printf("<H>\n");
 7  printf("I I\n");
 8  printf(" o \n");
 9  printf("<H>\n");
10  printf("I I\n");
11 
12  system("pause");
13  return 0;
14 }
View Code
 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 int main()
 4 {
 5  printf(" o  o \n");
 6  printf("<H><H>\n");
 7  printf("I II I\n");
 8 
 9  system("pause");
10  return 0;
11 }
View Code

结果截图:

test1

test1(2)

 

任务2

源代码:

 1 // 从键盘上输入三个数据作为三角形边长,判断其能否构成三角形
 2 // 构成三角形的条件: 任意两边之和大于第三边
 3 
 4 #include <stdio.h>
 5 
 6 int main() 
 7 {
 8     double a, b, c;
 9 
10     // 输入三边边长
11     scanf("%lf%lf%lf", &a, &b, &c);
12 
13     // 判断能否构成三角形
14     // 补足括号里的逻辑表达式
15     if( a > 0 && b > 0 && c > 0 && a + b >c && b + c >a && a + c >b)
16         printf("能构成三角形\n");
17     else
18         printf("不能构成三角形\n");
19 
20     return 0;
21 }
View Code

 结果截图:

test2

test2

 

任务3

源代码:

 1 #include <stdio.h>
 2 int main()
 3 {
 4     char ans1, ans2;  // 用于保存用户输入的答案
 5 
 6     printf("每次课前认真预习、课后及时复习了没? (输入y或Y表示有,输入n或N表示没有) :  ");
 7     ans1 = getchar(); // 从键盘输入一个字符,赋值给ans1
 8 
 9     getchar(); // 思考这里为什么要加这一行。试着去掉这一行,看看对运行有没有影响。
10 
11     printf("\n动手敲代码实践了没? (输入y或Y表示敲了,输入n或N表示木有敲) :  ");
12     ans2 = getchar();
13 
14     if ((ans1 == 'Y' || ans1 == 'y') && (ans2 == 'Y' || ans2 == 'y')) // 待补足,判断用户回答ans1和ans2都是y(不区分大小写)
15         printf("\n罗马不是一天建成的, 继续保持哦:)\n");
16     else
17         printf("\n罗马不是一天毁灭的, 我们来建设吧\n");
18 
19     return 0;
20 }
View Code

结果截图:

3(1)

3(2)

3(3

问题回答:

若没有这一行,用户无法完成对第二个问题的回答 即在第一个问题回答完后代码直接根据第一个问题的答案输出。emm所以这行代码的作用大概率是缓冲。

 

任务4

源代码:

 1 #include<stdio.h>
 2 
 3 int main()
 4 {
 5     double x, y;
 6     char c1, c2, c3;
 7     int a1, a2, a3;
 8     
 9     scanf("%d%d%d", &a1, &a2, &a3); //读取三个整数分别存入,此行缺少存入的动作//
10     printf("a1 = %d, a2 = %d, a3 = %d\n", a1,a2,a3);
11 
12     getchar();//加入这一行为无奈之举,原因参考任务3//
13 
14     scanf("%c%c%c", &c1, &c2, &c3);
15     printf("c1 = %c, c2 = %c, c3 = %c\n", c1, c2, c3);
16     
17     scanf("%lf %lf", &x, &y); //源代码要求读取时必须用逗号隔开,为方便可改为用空格隔开//
18     printf("x = %f, y = %lf\n",x, y);
19 
20     return 0;
21 }

 结果截图:

4

 

任务5

源代码:

 1 // 计算10亿秒约等于多少年,并打印输出
 2 #include <stdio.h>
 3 
 4 int main() 
 5 {
 6     int year;
 7     long long seconds = 1000000000;
 8 
 9     year = (seconds/3600)/24/365;
10 
11     printf("10亿秒约等于%d年\n", year);
12     return 0;
13 }

结果截图:

5

 

任务6

源代码:

 1 #include<stdio.h>
 2 #include<math.h>
 3 
 4 int main()
 5 {
 6     double x, y;
 7 
 8     while(scanf("%lf", &x) != EOF)
 9     {
10     
11     y = pow(x, 365);
12     printf("%.2f的365次方:%2.f\n", x, y);
13     printf("\n");
14     }
15 
16     return 0;
17 
18 }
View Code

结果截图:

6(4

 

任务7

源代码:

 1 #include<stdio.h>
 2 #include<math.h>
 3 
 4 int main()
 5 {
 6     double c, f;
 7 
 8     while(scanf("%lf", &c) != EOF)
 9     {
10         f = (9 * c / 5) + 32;
11         printf("摄氏度c = %.2f时,华氏度f = %.2f", c, f);
12         printf("\n");
13     }
14 
15 return 0;
16 
17 }
View Code

结果截图:

7

 

任务8

源代码:

 1 #define _CRT_SECURE_NO_WARNINGS
 2 #include<stdio.h>
 3 #include<math.h>
 4 
 5 int main()
 6 {
 7     double a, b, c, s, area;
 8 
 9     while(scanf("%lf %lf %lf", &a, &b, &c) != EOF)
10     {
11         s = (a + b + c) / 2;
12         area = sqrt(s * (s - a) *(s - b) *(s - c));
13         printf("a=%lf,b=%lf,c=%lf,area=%.3f\n", a, b, c, area);
14         printf("\n");
15     }
16  return 0;
17 }
View Code

结果截图:

8

 

实验总结:

实验总结主要是想记录写代码过程中出现的问题、解决方法及原因,防止下次再犯。

问题1——task2写完代码后运行后发现输入数据敲回车后无结果

原因:输入数据格式前后不符合

#下次输入数据以及定义数据格式时注意前后匹配#

 

问题2——task3编写if()条件总总报错

原因:“ans == ”写成“ans =”

# 判断相等:==;赋值:= #

 

问题3——task8运行同样无结果,输出task7的内容,但此时已移除task7且关闭所有task7的运行窗口

原因:源代码编写错误,在while()后多加了" ; ",导致循环体出错

#不要把 “ ;”敲得太顺太理所应当#

 

posted @ 2026-03-19 19:46  Bob欧巴  阅读(0)  评论(0)    收藏  举报