陈凯迪的实验2

一、实验结论

  任务1

    代码:

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <time.h>
 4 
 5 #define N 5
 6 
 7 int main(){
 8     int grade,number,i;
 9 
10     srand(time(0));
11 
12     for(i=0;i<N;++i){
13         grade = rand()%4 + 2018;
14         number = rand()%999 + 1;
15         printf("%d8330%04d\n",grade,number);
16     }
17     
18     return 0;
19 }
View Code

    截图:

Picture

    问题:

1 1、随机取2018至2021之间的年份
2 2、随机取1至999之间的数字(感觉这一步有问题,万一学号末尾是“000”怎么办?)
3 3、随机抽取2018届至2021届之间的学号
View answer

 

  任务2

    代码:

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <time.h>
 4 #define _CRT_SECURE_NO_WARNINGS
 5 int main() {
 6   int m, n, i;
 7   srand(time(0));
 8   m = rand() % 30 + 1;
 9   printf("猜猜这个四月的哪一天是你的幸运日,\n你有三次机会哦!\n");
10 
11   for (i = 1; i <= 3; i++) {
12     scanf("%d", &n);
13     if (m > n)
14       printf("早了\n");
15     else if (m < n)
16       printf("迟了\n");
17     else {
18       printf("哇,猜中了呢");
19       break;
20     }
21   }
22   if (m != n)
23     printf("那我就大发慈悲地告诉你吧,是%d号呢", m);
24   return 0;
25 }
View Code

    截图:

Picture

  

  任务3

    代码:

 1 #include <stdio.h>
 2 #define N 80
 3 int main(){
 4     char ch;
 5     while(scanf("%c",&ch)!=EOF){
 6         
 7         getchar();
 8         if(ch=='y')
 9             printf("wait a minute\n");
10         else if(ch=='g')
11             printf("go go go\n");
12         else if(ch=='r')
13             printf("stop!\n");
14         else
15             printf("罕见捏\n");
16     }
17     return 0;
18 }
View Code

    截图:

Picture

 

  任务4

    代码:

 1 #include <stdio.h>
 2 int main(){
 3     int n,a,i;
 4     double s,fm;
 5     while(scanf("%d",&n)!=EOF&&scanf("%d",&a)!=EOF){
 6         s=0;
 7         fm=0;
 8         for(i=1;i<=n;i++){
 9             fm=fm*10+a;
10             s=s+i/fm;
11         }
12         printf("n = %d,a = %d,s = %lf\n",n,a,s);
13     }
14     return 0;
15 }
View Code

    截图:

Picture

  

  任务5

    代码:

 1 #include <stdio.h>
 2 int main(){
 3     int i,j;
 4     for(i=1;i<=9;i++){
 5         for(j=1;j<=i;j++){
 6             printf("%d×%d=%-3d",j,i,i*j);
 7         }
 8         printf("\n");
 9     }    
10     return 0;
11 }
View Code

    截图:

Picture

  

  任务6.1

    代码:

 1 #include <stdio.h>
 2 #define _CRT_SECURE_NO_WARNINGS
 3 int main() {
 4   int n, i;
 5   printf("input n:");
 6   scanf("%d", &n);
 7   for (i = 1; i < 4 * n; i++) {
 8     switch (i % 4) {
 9     case 0:
10       printf("\n");
11       break;
12     case 1:
13       printf(" o \n");
14       break;
15     case 2:
16       printf("<H>\n");
17       break;
18     case 3:
19       printf("I I\n");
20       break;
21     }
22   }
23   return 0;
24 }
View Code

    截图:

Picture

  

  任务6.2

    代码:

 1 #include <stdio.h>
 2 #define _CRT_SECURE_NO_WARNINGS
 3 int main() {
 4   int n, i, j;
 5   printf("input n:");
 6   scanf("%d", &n);
 7   for (i = 1; i < 4; i++) {
 8     for (j = 1; j <= n; j++) {
 9       switch (i % 4) {
10       case 0:
11         printf("\n");
12         break;
13       case 1:
14         printf(" o      ");
15         break;
16       case 2:
17         printf("<H>     ");
18         break;
19       case 3:
20         printf("I I     ");
21         break;
22       }
23       if(j==n) printf("\n");
24     }
25   }
26   return 0;
27 }
View Code

    截图:

Picture

  

  任务6.3

    代码:

 1 #include <stdio.h>
 2 #define _CRT_SECURE_NO_WARNINGS
 3 int main() {
 4   int n;
 5   int i;
 6   int j;
 7   int a;//每行中前面要空出来的空格数
 8   int b;//每行中要打印的小人身体部件的个数 
 9   printf("input n:");
10   scanf("%d", &n);
11   for (i = 1; i < 4 * n; i++) 
12   {
13     a=(i-1)/4;//每行前面要空出来的空格数与行数有关
14     if (i % 4 == 0)//每当到4的倍数不打印,直接换行
15       printf("\n");
16     else 
17     {
18       for (j = 1; j <= a; j++)//line18至line36都是在一行内操作,直到line36才换行
19         printf("        ");
20       b= 2 * n - a * 2 - 1;
21       for (j = 1; j <= b; ++j) 
22       {
23         switch (i % 4)//每行要打印的小人身体部件与行数有关 
24         {
25         case 1:
26           printf(" o      ");
27           break;
28         case 2:
29           printf("<H>     ");
30           break;
31         case 3:
32           printf("I I     ");
33           break;
34         }      
35       }
36       printf("\n");//每行结束后换行
37     }
38   }
39   return 0;
40 }
View Code

    截图:

Picture

 

 

二、实验总结

    做完实验6,感觉又理解了不少新东西呢,尤其是代码的可读性很重要。刚开始敲的时候没有用中间变量a和b,写for循环的时候很痛苦。加了这两个变量后就简单许多。

posted on 2022-04-16 11:51  CKDDOUBI  阅读(24)  评论(2编辑  收藏  举报

导航