实验2

任务1

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 #include<time.h>
 4 
 5 #define N 5
 6 #define N1 397
 7 #define N2 476
 8 #define N3 21
 9 
10 int main(){
11     int cnt;
12     int random_major,random_no;
13     
14     srand(time(NULL));    //以当前系统时间作为随机种子
15     
16     cnt = 0;
17     while(cnt<N){
18         random_major = rand()%2;
19         
20         if(random_major){
21             random_no = rand()%(N2-N1+1)+N1;
22             printf("20248329%04d\n",random_no);
23         }
24         else{
25             random_no = rand()%N3+1;
26             printf("20248395%04d\n",random_no);
27         }
28         
29         cnt++;
30     }
31     
32     return 0;
33 }

问题1:限制输出的随机数在班内同学的学号范围内

问题2:限制输出的随机数在班内奇安信同学的学号范围内

问题3:按照学号随机抽取四个班内的同学

任务2

 1 // 一元二次方程求解
 2 
 3 #include<stdio.h>
 4 #include<math.h>
 5 
 6 int main(){
 7     double a,b,c;
 8     double delta,p1,p2;// 用于保存中间计算结果
 9     
10     while(scanf("%lf%lf%lf",&a,&b,&c)!=EOF){
11         if(a==0){
12             printf("a=0,invanlid input\n");
13             continue;
14         }
15         
16         delta=b*b-4*a*c;
17         p1=-b/2/a;
18         p2=sqrt(fabs(delta))/2/a;
19         
20         if(delta==0)
21             printf("x1 = x2 = %.2g\n",p1);
22         else if(delta>0)
23             printf("x1 = %.2g,x2 = %.2g\n",p1+p2,p1-p2);
24         else{
25             printf("x1 = %.2g+%.2gi,",p1,p2);
26             printf("x2 = %.2g-%.2gi\n",p1,p2);
27         }
28     }
29     
30     return 0;
31 }

任务3

 1 #include<stdio.h>
 2 
 3 int main(){
 4     char colour;
 5     while(scanf("%c",&colour)!=EOF)
 6     {
 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         getchar();
16     }
17     return 0;
18 }

任务4

 1 #include <stdio.h>
 2 int main()
 3 {
 4     double a,max,min,all;
 5     all=0;
 6     max=0;
 7     min=20000;
 8     printf("输入今日开销,直到输入-1终止:\n");
 9     while(1)
10     {scanf("%lf",&a);
11     if(a==-1)
12     break;
13     if(a>max)
14         max=a;
15     if(a<min)    
16         min=a;
17     all+=a;        
18     }
19     printf("今天累计消费总额:%.1lf\n",all);
20     printf("今日最高一笔开销:%.1lf\n",max);
21     printf("今天最低一笔开销:%.1lf\n",min); 
22     return 0;
23     
24 }

任务5

 1 #include<stdio.h>
 2 
 3 int main(){
 4     int a,b,c;
 5     while(scanf("%d%d%d",&a,&b,&c)!=EOF)
 6     {
 7     if(a+b<=c||a+c<=b||b+c<=a)
 8     printf("不能构成三角形\n");
 9     else
10     {
11     if(a==b&&b==c&&a==c)
12     printf("等边三角形\n");
13     else if(a==b||b==c||a==c)
14     printf("等腰三角形\n");
15     else if(a*a+b*b==c*c||b*b+c*c==a*a||a*a+c*c==b*b)
16     printf("直角三角形\n");
17     else
18     printf("普通三角形\n");
19     }
20     }
21     return 0;
22 }

任务6

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 #include<time.h>
 4 
 5 int main()
 6 {
 7     double cnt,a,b;
 8     cnt=3;
 9     a=15;
10 
11     printf("猜猜2024年11月哪一天会是你的lucky day\n开始喽,你有三次机会,猜吧(1~30):");
12     srand(time(NULL)); 
13     a=rand()%31+1;
14     
15     while(cnt)
16     {
17         scanf("%lf",&b);
18         if(a==b)
19         {
20         printf("哇,猜中了:");
21         continue;}
22         else if(b>a) 
23         printf("你猜的日期晚了,你的lucky day在前面哦\n");
24         else
25         printf("你猜的日期早了,你的lucky day在后面哦\n");
26     
27         cnt=cnt-1;
28         if(cnt!=0)
29         printf("再猜(1~30):");
30     }
31     printf("次数用完了,偷偷告诉你,11月你的lucky day是%.lf号",a);
32     return 0;
33 }

posted @ 2024-10-11 19:15  ghostlll  阅读(8)  评论(0编辑  收藏  举报