silverbullet4869

实验2_C语言分支与循环基础应用编程

实验任务1

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

第十五行代码的作用为生成一个1到65的随机数;
这个程序的功能是随机生成5个班级学生对应的学号;

 

实验任务2

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 
 4 int main()
 5 {
 6     char input;
 7 
 8     while(scanf("%c",&input)!=EOF)
 9     {
10         switch(input)
11         {
12         case'r':printf("stop!\n");break;
13         case'g':printf("go go go\n");break;
14         case'y':printf("wait a minute\n");break;
15         default:printf("something must be wrong...\n");break;
16         }
17         getchar();
18     }
19 
20     system("pause");
21     return 0;
22 }

 

实验任务3

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <time.h>
 4 
 5 int main()
 6 {
 7     int l, m, n = 0;
 8     srand(time(0));
 9     l = rand() % 31 + 1;
10     printf("猜猜2024年5月哪一天会是你的lucky day\n\n");
11     printf("开始喽,你有三次机会,猜吧(1~31):");
12      
13     while (n < 3)
14     {
15         scanf("%d", &m);
16         printf("\n");
17  
18         if (m == l)
19         {
20             printf("哇,猜中了:-)\n");
21             return 0;
22         }
23         else if (m < l)
24         {
25             printf("你猜的日期早了,你的lucky day还没到呢\n");
26         }
27         else
28         {
29             printf("你猜的日期晚了,你的lucky day在前面哦\n");
30         }
31         
32         if (n < 2)
33         {            
34             printf("\n再猜(1~31):");       
35         }
36    
37         n++;
38     }
39  
40     if (n == 3)
41     {
42         printf("\n\n次数用完了,偷偷告诉你,5月你的lucky day是%d号\n",l);
43     }
44     
45     system("pause");
46     return 0;
47 }   

 

实验任务4

 

 

 1 #include <stdio.h>
 2 #include<stdlib.h>
 3 
 4 int main() {
 5     int n, a, i, j, m=0;
 6     double s = 0.0;
 7 
 8     while (scanf("%d%d", &n, &a) != EOF) {
 9         s = 0.0;
10         for (i = 1; i <= n; i++) {
11             m=0;
12             for (j = 0; j < i; j++) {
13                 m = m * 10 + 1;       
14             }
15             s += (double)i / (a * m);
16         }
17 
18         printf("n = %d, a = %d, s = %lf\n\n", n, a, s);
19     }
20     system("pause");
21     return 0;
22 }

 

实验任务5

 1 #include <stdio.h>
 2 #include<stdlib.h>
 3 
 4 int main() {
 5     int i, j;
 6 
 7     for (i = 1; i <= 9; i++) 
 8     {
 9         for (j = 1; j <= i; j++) 
10         {
11             printf("%d×%d =%2d\t", j, i, i * j); 
12         }
13         printf("\n"); 
14     }
15     system("pause");
16     return 0;
17 }

 

实验任务6

 

 1 #include <stdio.h>
 2 #include<stdlib.h>
 3 int main() {
 4     int n,i,k,j;
 5     printf("input n:");
 6     scanf("%d", &n);
 7     
 8     for (i = 0; i < n; i++) 
 9     {
10         for (j = 0; j < i; j++) 
11         {
12             printf("\t");
13         }
14         for (k = 2 * (n - i) - 1; k > 0; k--) 
15         {
16             printf(" O \t");
17         }
18         printf("\n");
19 
20         for (j = 0; j < i; j++) 
21         {
22             printf("\t");
23         }
24         for (k = 2 * (n - i) - 1; k > 0; k--)
25         {
26             printf("<H>\t");
27         }
28         printf("\n");
29 
30         for (j = 0; j < i; j++)
31         {
32             printf("\t");
33         }
34         for (k = 2 * (n - i) - 1; k > 0; k--)
35         {
36             printf("I I\t");
37         }
38         printf("\n");
39     }
40     system("pause");
41     return 0;
42 }

 

实验总结

  1. 和之前做百科园一样容易忽视数据精度(反思);
  2. 嵌套循环及水平制表使用不熟练,打印小人花了好长时间对齐

 

posted on 2024-04-08 21:49  SilverBullet4869  阅读(28)  评论(0编辑  收藏  举报

导航