实验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 }

 

问题答案

 

posted @ 2024-10-11 15:17  松松睡不醒  阅读(6)  评论(0编辑  收藏  举报