实验2 C语言控制语句应用编程

四、实验结论
1. 实验任务1
 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <time.h>
 4 #define N 5
 5 int main()
 6 {
 7     int grade, number;
 8     int i;
 9     
10     srand(time(0)); // 以当前系统时间作为随机种子
11     for(i=0; i<N; ++i)
12     {
13         grade = rand()%4 + 2018;
14         number = rand()%999 + 1;
15         printf("%d8330%04d\n", grade, number);
16 }
17     return 0;
18 }
  问题1:line16代码的功能是生成2018--2021的随机数
  问题2:line17代码的功能是生成1--999的随机数
  问题3:这个程序的功能是随机生成五组学号
2. 实验任务2
 1 //简单的猜日期的程序 
 2 #include <stdio.h>
 3 #include <stdlib.h>
 4 #include <time.h>
 5 int main()
 6 {
 7     int i,c=0,n,t;
 8     printf("猜猜2022年4月哪一天会是你的lucky day\n");
 9     printf("开始喽,你有三次机会,猜吧(1~30):  "); 
10     srand(time(0));
11     t=rand()%30+1;
12     for(i=1;i<=3;++i)
13     {
14     scanf("%d",&n);
15     if(n==t)
16     {
17         printf("哇,猜中了:-)");
18         break;
19     }
20     else if(n<t)
21     {
22         printf("你猜的日期早了,你的lucky day还没到呢\n");
23         printf("再猜(1~30): ") ; 
24     }
25     else
26     {
27         printf("你猜的日期晚了,你的lucky day已经过了\n");
28         printf("再猜(1~30): ") ;
29     }
30     c++;
31     }
32     if(c==3)
33     {
34         printf("次数用完啦。偷偷告诉你:4月,你的lucky day是%d号",t);
35     }
36 
37     return 0;
38 }

3. 实验任务3
 1 //模拟红绿灯信息
 2 #include <stdio.h>
 3 int main()
 4 {
 5     int n;
 6 
 7     while (scanf("%c", &n) != EOF)
 8     {
 9         if (n == 'y')
10         {
11             printf("wait a minute\n");
12         }
13         else if (n == 'g')
14         {
15             printf("go go go\n");
16         }
17         else if (n == 'r')
18         {
19             printf("stop!\n");
20         }
21         else
22         {
23             printf("something must be wrong\n");
24         }
25         getchar();
26     }
27     return 0;
28 }

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

5. 实验任务5
 1 //打印九九乘法表
 2 #include<stdio.h>
 3 int main()
 4 {
 5     int i,j;
 6     for(i=1;i<=9;++i)
 7     {
 8         for(j=1;j<=i;++j)
 9         {
10             printf("%dX%d = %d  ",j,i,i*j);
11         }
12         printf("\n");
13      } 
14     return 0;
15 }

6. 实验任务6
 1 //从键盘输入n,在纵向打印n个字符小人 
 2 #include<stdio.h>
 3 int main()
 4 {
 5     int n,i;
 6     printf("input n: ");
 7     scanf("%d", &n);
 8     for (i = 1; i <= n; i++)
 9     {
10         printf(" 0\n");
11         printf("<H>\n");
12         printf("1 1\n");
13         printf("\n");
14     }
15 }

 1 //从键盘输入n,在横向打印n个字符小人
 2 #include<stdio.h>
 3 int main()
 4 {
 5     int n,i;
 6     printf("input n: ");
 7     scanf("%d", &n);
 8     for (i = 1; i <= n; i++)
 9     {
10         printf(" 0\t");
11     }
12         printf("\n");
13     for (i = 1; i <= n; i++)
14     {
15         printf("<H>\t");
16     }
17         printf("\n");
18     for (i = 1; i <= n; i++)
19     {
20         printf("1 1\t");
21     }
22     return 0;
23 }

 1 //从键盘输入n,打印n行按图示方式递减的字符小人阵列 
 2 #include<stdio.h>
 3 int main()
 4 {
 5     int  n,i,j,m,t;
 6     printf("input n:");
 7     scanf("%d", &n);
 8     for (j =1; j<=n; j++)
 9     {
10         t = 5* (j - 1);
11         printf("%*s", t, "");
12         for (i = j; i <= 2*n-j; i++)
13             printf(" o   ");
14         printf("\n");
15         t = 5 * (j - 1);
16         printf("%*s", t, "");
17         for (i = j; i <= 2*n-j; i++)    
18             printf("<H>  ");
19         printf("\n");        
20         t = 5 * (j - 1);
21         printf("%*s", t, "");
22         for (i = j; i <= 2*n-j; i++)    
23             printf("I I  ");
24         printf("\n");                
25     }
26     return 0;
27 }

 

posted @ 2022-04-13 19:27  liuxianer  阅读(83)  评论(0)    收藏  举报