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

发布时间 2023-10-21 18:41:14作者: Sunria

1.实验任务1

task1源代码:

 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     system("pause");
21     return 0;
22 }

 

task1运行截图:

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

答:产生374-465之间的随机数

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

答:随机产生学生学号

 

2. 实验任务2

task2源代码:

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 
 4 int main()
 5 {
 6     char color;
 7     while(scanf("%c",&color)!= EOF){
 8         getchar();/*用于删去回车,否则显示完相应语句后,会显示"something must be wrong...\n"*/
 9         switch(color){
10         case 'r':printf("stop!\n");break;
11         case 'g':printf("go go go\n");break;
12         case 'y':printf("wait a minute\n");break;
13         default:printf("something must be wrong...\n");break;
14         }
15     }
16     system("pause");
17     return 0;
18 }

task2运行截图:

 

3. 实验任务3

task3源代码:

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <time.h>
 4 
 5 int main()
 6 {
 7     int tureday,day,i;
 8     printf("猜猜2023年11月哪一天会是你的lucky day\n");
 9     printf("开始,你有三次机会,猜猜看(1~30):");
10     
11     srand(time(0));//设置随机种子
12     tureday=rand()%30+1;
13 
14     scanf("%d",&day);
15     
16     for(i=1;i<=3;++i){
17         if(day==tureday){
18             printf("哇,猜中了!\n");
19             break;}
20         else if(day<tureday){
21             printf("你猜的日期早了,luckyday还没到\n");}
22         else{
23             printf("你猜的日期晚了,luckyday已经过了\n");}
24         
25         if(i<3){
26         printf("再猜:");
27         scanf("%d",&day);}
28         
29     }
30 
31     if(i==4)
32         printf("次数用完,你的luckday是11月%d",tureday);
33 
34     system("pause");
35     return 0;
36 }

task3运行截图:

 

4. 实验任务4

task4源代码:

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

task4运行截图:

5. 实验任务5

task5源代码:

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

task5运行截图:

6. 实验任务6

task6源代码:

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

task6运行截图:

 

总结:值得反复理解!