实验2
实验任务1
代码
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 int main() 9 { 10 int number; 11 int i; 12 13 srand( time(0) ); 14 for(i = 0; i < N; ++i) { 15 number = rand()%(N2 - N1 + 1) + N1; 16 printf("202383290376%04d\n", number); 17 } 18 return 0; 19 }
运行结果截图
问题1答案:
先通过rand函数升恒一个伪随机数,再通过取余运算将其限定在N1到N2之间,因为取余后在[0,N2-N1]中,加上N1就是[N1,N2]。
问题2答案:
生成5个随机学号,其尾号在374到465之间。
实验任务2
代码
1 #include<stdio.h> 2 3 int main() 4 { 5 char a; 6 while(1) 7 { 8 printf("请输入红绿灯颜色:"); 9 int result =scanf("%c",&a); 10 11 if (result == EOF) 12 {break; 13 } 14 else if (result==1) 15 { 16 switch(a) 17 { 18 case'r': 19 printf("Stop!\n"); 20 break; 21 case'g': 22 printf("Go go go!\n"); 23 break; 24 case'y': 25 printf("wait a minute\n"); 26 break; 27 default: 28 printf("something must be wrong...\n") ; 29 break; 30 } 31 } 32 getchar(); 33 } 34 35 36 return 0; 37 }
运行截图
实验任务3
代码
1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<time.h> 4 5 int main() 6 { 7 srand (time(0)); 8 int day=(rand()%30)+1; 9 10 int a=0; 11 int g; 12 13 14 while (a<3) 15 { 16 17 printf("猜猜2023年11月哪一天是你的幸运日:\n"); 18 scanf("%d",&g); 19 20 if (g==day) 21 { 22 printf("哇!猜中了!:—)\n"); 23 break; 24 } 25 else if(g<day) 26 { 27 printf("你猜的日期早了,你的幸运日还没到呢\n"); 28 } 29 else 30 { 31 printf("你猜的日期晚了,你的幸运日已经过啦\n"); 32 } 33 34 a++; 35 } 36 37 if(a==3) 38 { 39 printf("次数用完啦~偷偷告诉你,你的幸运日是%d\n",day); 40 } 41 return 0; 42 }
运行截图
实验任务4
代码
1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<math.h> 4 int main(){ 5 int n, a, i, p; 6 while(scanf("%d%d",&n,&a)!=EOF) 7 { 8 double s=0.0; 9 for(i=1,p=0;i<=n;i++) 10 { 11 p+=a*pow(10,i-1); 12 s+=i*1.0/p; 13 } 14 printf("n = %d, a = %d, s = %lf\n",n,a,s); 15 } 16 return 0; 17 }
结果
实验任务5
代码
1 #include <stdio.h> 2 #include <stdlib.h> 3 int main() 4 { int i,j,ans; 5 for(i = 1; i <= 9; i++) 6 { 7 for(j = 1; j <= i; j++) 8 { 9 ans = i*j; 10 printf("%dx%d = %2d ",j,i,ans); 11 } 12 printf("\n"); 13 } 14 return 0; 15 }
运行结果
实验任务6
代码
1 #include <stdio.h> 2 #include <stdlib.h> 3 int main() { 4 int n, i, m; 5 i = 0; 6 m = 0; 7 scanf("%d",&n); 8 while (n > 0) 9 { 10 for (i = 0;i < m;i++) 11 { 12 printf(" "); 13 } 14 for (i = 0;i <= 2*(n-1);i++) 15 { 16 printf(" o "); 17 } 18 19 printf("\n"); 20 21 for (i = 0;i < m;i++) 22 { 23 printf(" "); 24 } 25 26 for (i = 0;i <= 2*(n-1);i++) 27 { 28 printf("<H> "); 29 } 30 printf("\n"); 31 32 for (i = 0;i < m;i++) 33 { 34 printf(" "); 35 } 36 37 for (i = 0;i <= 2*(n-1);i++) 38 { 39 printf("I I "); 40 } 41 printf("\n"); 42 43 n--; 44 m++; 45 } 46 return 0; 47 }
运行截图