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

发布时间 2023-10-16 23:01:36作者: Regec
 一,实验目的
二,实验准备
三,实验内容
1,实验任务1
task1.c
 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <time.h>
 4 
 5 #define N 5
 6 #define N1 374
 7 #define N2 465
 8 
 9 int main()
10 {
11     int number;
12     int i;
13 
14     srand( time(0) ); // 以当前系统时间作为随机种子
15 
16     for(i = 0; i < N; ++i) {
17         number = rand()%(N2 - N1 + 1) + N1;
18         printf("202383290376%04d\n", number);
19     }
20 
21     return 0;
22 }

运行程序后,每次输出的5数字都不相同(随机)。

 问题1:解释line17代码的功能

line17代码作用是生成N1 374~N2 465的随机数。

问题2:这个程序的功能是什么

功能是生成5个后三位数为随机374~465的数字。

 

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

 

3,实验任务3
task3.c
 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 #include<time.h>
 4 
 5 #define N1 30
 6 #define N2 1
 7 int main()
 8 {
 9     int number;
10     int n;
11     int i;
12     srand(time(0));
13     number=rand()%(N1 - N2 + 1) + N2;
14     printf("猜猜2023年11月哪天是你的lucky day\n");
15     printf("开始喽,你有三次机会,猜吧(1~30):");
16     for(i=1;i<=3;++i)
17     {
18         scanf("%d",&n);
19         if(n<number)
20         {
21             printf("你猜的时间早了,你的lucky day还没到呢\n");
22             printf("再猜(1~30):");
23 
24         }
25         else if(n>number)
26         {
27             printf("你猜的时间晚了,你的lucky day已经过了\n");
28             printf("再猜(1~30):");
29         }
30         else
31         {
32             printf("哇,猜中了");
33             return 0;
34         }
35     
36     }
37     printf("次数用完了,偷偷告诉你:11月,你的lucky day是%d号",number);
38 
39     return 0;
40 }

 

4,实验任务4
task4.c
 1 #include<stdio.h>
 2 #include<math.h>
 3 
 4 int main()
 5 {
 6     int n,a,i;
 7     while(scanf("%d%d",&n,&a))
 8     {
 9         double s=0;
10     for(i=1;i<=n;++i)
11     {
12         s+=i/((pow(10.0,i)-1)/9*a);
13     }
14     printf("n = %d,a = %d,s = %lf\n",n,a,s);
15 
16     }
17 
18     return 0;
19 }

 

5,实验任务5
task5.c
 1 #include<stdio.h>
 2 
 3 int main()
 4 {
 5     int n=9;
 6     int i,j;
 7     for(i=1;i<=n;++i)
 8     {
 9         for(j=1;j<=i;++j)
10         {
11             printf("%d*%d = %2d  ",i,j,i*j);
12             if(i==j)
13             {
14                 printf("\n");
15             }
16         }
17     }
18     return 0;
19 }

 

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

 

四,实验结论
见上
五,实验总结