实验1

实验任务1:在横向方向上打印出两个字符小人

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 int main() {
 4     printf(" O    O \n");
 5     printf("<H>  <H> \n");
 6     printf("I I  I I \n");
 7 
 8     system("pause");
 9     return 0;
10 }

 

通过加空格调整了排版

在纵向方向上打印出两个字符小人

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

可以重复写两次代码,也可以多此一举地用循环句,用了循环句就可以想打几个小人就打几个

 

实验任务2:简单的算术运算程序

math1:

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 int main() {
 4     int x,y;
 5     int r1,r2,r3,r4;
 6     x=1,y=2;
 7     r1=x+y;
 8     r2=x-y;
 9     r3=x*y;
10     r4=x/y;
11     printf("%d %d %d %d\n",r1,r2,r3,r4);
12     system("pause");
13     return 0;
14 }

结果如下,r4的值因为整除直接被约成0了,其他结果没啥问题。

math2:

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 int main() {
 4     float x,y;
 5     float r1,r2,r3,r4;
 6     x=1,y=2;
 7     r1=x+y;
 8     r2=x-y;
 9     r3=x*y;
10     r4=x/y;
11     printf("r1=%f r2=%f r3=%f r4=%f\n",r1,r2,r3,r4);
12     system("pause");
13     return 0;
14 }

结果如下,这次r4值是对的。

所以一定要根据需求确定变量的数据类型。

 

实验任务3:乘除号的位置问题

math3:

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 int main() {
 4     int n,r1,r2,r3,r4;
 5     n=100;
 6     r1=n*(n+1)/2;
 7     r2=(n+1)*n/2;
 8     r3=n/2*(n+1);
 9     r4=(n+1)/2*n;
10     printf("r1=%d r2=%d r3=%d r4=%d\n",r1,r2,r3,r4);
11     system("pause");
12     return 0;
13 }

n=100时,结果如下。

可以看到r4的结果有误,原因是(n+1)/2时由于分子分母数据类型都为整型,整除得结果为50,再乘上n就算出5000。

n=101时结果如下。

r3错误原因与上面一样。

 

实验任务4:一个普通的问答题

从老师的文档那边复制下来玩了一下,补充了自己的注释。

 1 #include <stdio.h>
 2 int main() {
 3     int answer;
 4     char words[5000];//一个容量5000的字符数组,用来存被测对象的反馈
 5     printf("网课学习让一些人欢喜一些人忧.\n");
 6     printf("1. 作为一个宅,社恐,觉得这样很好. 有网络,自主学习,很ok.\n");
 7     printf("2. 不喜,不喜,很不喜. 眼睛快瞎了. 脑壳有点卡...\n");
 8     printf("3. 中间派. 不知道. 说不清.\n");
 9     printf("4. 其它...\n");
10     printf("你的选择: ");
11     scanf("%d", &answer);
12     if(answer == 4) {
13         printf("请补充说明你的想法: \n");
14         getchar(); //作用应该是等待被测者输入完想法后再显示下一道题,但不大清楚原理
15         gets(words); // 从键盘输入你的想法存入字符数组word[],输完后,敲回车键
16     }
17     printf("\n"); // 换行
18     printf("当遇到问题时, 你会选择:\n");
19     printf("1. 遇到问题, 就解决问题。不懂的,搜索式学习,逐个攻破.\n");
20     printf("2. 遇到问题, 不高兴。然后,...,没有了.\n");
21     printf("3. 其它...\n");
22     printf("你的选择: ");
23     scanf("%d", &answer);
24     if(answer == 1)
25         printf(":)\n");
26     else if(answer == 2)
27         printf("这样不能解决问题啊...我们选择1好不好:)\n");
28     else if(answer == 3) {
29         printf("请补充说明你的想法: \n");
30         getchar(); //作用同上一题那个getchar()
31         gets(words); //同上题,从键盘输入你的想法,输完后,敲回车键
32     }
33     return 0;
34 }

结果如下:

 

posted @ 2021-03-13 16:06  namelessbird  阅读(73)  评论(0编辑  收藏  举报