实验2
任务1
源代码
1 #include <time.h> 2 #define N 5 3 #define N1 397 4 #define N2 476 5 #define N3 21 6 int main(){ 7 int cnt; 8 int random_major,random_no; 9 10 srand(time(NULL)); 11 12 cnt=0; 13 while (cnt<N){ 14 random_major=rand()%2; 15 16 if( random_major){ 17 random_no=rand()%(N2-N1+1)+N1; 18 printf("20248329%04d\n",random_no); 19 } 20 else{ 21 random_no=rand()%N3+1; 22 printf("20248395%04d\n",random_no); 23 } 24 25 cnt++; 26 } 27 return 0; 28 }
问题答案
问题1:随机出现N1到N2的数字
问题2:随机出现N3中数字
根据运行时间给出随机学号,没有line10,出现的是同一组数据
任务2
源代码
1 #include <stdio.h> 2 #include <math.h> 3 int main(){ 4 double a,b,c; 5 double delta,p1,p2; 6 7 while (scanf("%lf%lf%lf", &a, &b, &c)!= EOF){ 8 if(a==0){ 9 printf("a==0,invalid input\n"); 10 continue; 11 } 12 13 delta=b*b-4*a*c; 14 p1=-b/2/a; 15 p2=sqrt(fabs(delta))/2/a; 16 17 if(delta==0) 18 printf("x1 = x2= %.2g\n",p1); 19 else if (delta>0) 20 printf("x1 = %.2g, x2 = %.2g\n",p1+p2,p1-p2 ); 21 else { 22 printf("x1= %.2g + %.2gi,",p1,p2); 23 printf("x2= %.2g - %.2gi\n",p1,p2); 24 } 25 } 26 return 0; 27 }
问题答案
任务3
源代码
1 #include <stdio.h> 2 int main(){ 3 char colour; 4 5 while (scanf("%c", &colour) != EOF){ 6 getchar(); 7 if(colour=='r') 8 printf("stop!\n"); 9 else if(colour=='g') 10 printf("go go go\n"); 11 else if(colour=='y') 12 printf("wait a minute\n"); 13 else 14 printf("something must be wrong\n"); 15 } 16 return 0; 17 }
问题答案
任务4
源代码
1 #include<stdio.h> 2 int main(){ 3 printf("输入每日开销,直到输入-1停止:\n"); 4 double num,maxnum=0,minnum=20000,totalnum=0; 5 6 while(1){ 7 if(num==-1) 8 break; 9 scanf("%lf",&num); 10 if(num>maxnum) 11 maxnum=num; 12 if(num<minnum&&num>0) 13 minnum=num; 14 totalnum +=num; 15 } 16 printf("今日累计消费总额:%.2lf\n", totalnum); 17 printf("今日最高一笔开销:%.2lf\n", maxnum); 18 printf("今日最低一笔开销:%.2lf\n", minnum); 19 20 return 0; 21 }
问题答案
任务5
源代码
1 #include<stdio.h> 2 int main(){ 3 int a,b,c,t; 4 while(scanf("%d%d%d",&a,&b,&c)!=EOF){ 5 if(a>b){ 6 t=a;a=b;b=t; 7 } 8 if(a>c) 9 {t=a;a=c;c=t; 10 } 11 if(b>c); 12 {t=b;b=c;c=t; 13 } 14 if(a+b<=c) 15 printf("不能构成三角形\n"); 16 else if(a*a+b*b==c*c) 17 printf("直角三角形\n"); 18 else if(a==b&&a==c) 19 printf("等边三角形\n"); 20 else if(a==b||a==c||b==c) 21 printf("等腰三角形\n"); 22 else 23 printf("普通三角形\n"); 24 25 } 26 27 return 0; 28 }
问题答案
任务6
源代码
1 #include<stdio.h> 2 3 int main(){ 4 int x; 5 srand(time(NULL)); 6 int num=rand()%30+1; 7 int count=3; 8 9 printf("猜猜2024年11月哪一天会是你的lucky day\n"); 10 printf("开始咯,你有三次机会,猜吧(1~30):"); 11 while(count){ 12 scanf("%d",&x); 13 getchar(); 14 if(x>num){ 15 printf("你猜的日期晚了,你的lucky day在前面哦 \n"); 16 printf("再猜:"); 17 } 18 else if(x<num){ 19 printf("你猜的日期早了,你的lucky day还没到哦\n"); 20 printf("再猜:"); 21 } 22 else{ 23 printf("哇,猜中了:)"); 24 break; 25 } 26 count--; 27 28 if(count==0) 29 printf("次数用光啦。偷偷告诉你,11月你的lucky day是%d 号",num); 30 } 31 return 0; 32 }
问题答案