实验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;//随机抽取计算机类学生学号末位为397~476的学号
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 
33     return 0;
34 }

运行结果:

 

 

问题1:随机抽取计算机类学生学号末位为397~476的学号

问题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, invalid 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 int main() 
 3 {
 4 char x='\0';
 5 while(scanf("%c",&x)!=EOF)
 6 {   
 7     if(x=='r')
 8     {
 9         printf("stop!\n");
10         getchar();
11     }
12     else if(x=='g')
13     {
14      printf("go go go\n");
15      getchar();
16 }
17     else if(x=='y')
18     {
19      printf("wait a minute\n");
20      getchar();
21 }
22 else
23 {
24 printf("something must be wrong\n");
25 getchar();
26 }
27 }
28 return 0;
29 }

运行结果:

实验任务4:

源代码:

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

运行结果:

实验任务5:

源代码:

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

运行结果:

实验任务6:

源代码:

 1 int main() {
 2     srand(time(NULL));
 3     int luckyDay = rand() % 30 + 1;
 4     int m;
 5     
 6 
 7     printf("猜猜2024年11月哪一天会是你的luckyday\n开始喽,你有三次机会,猜吧(1~30):");
 8     for(int i = 0;i<3;i+=1)
 9     {scanf("%d",&m);
10     
11     if(m==luckyDay)
12     {
13         printf("哇,猜中了\n"); 
14         return 0;
15     }
16     else if(m<luckyDay)
17     {
18         printf("你猜的日期早了,你的luckyDay还没到呢\n")    ;
19     }
20     else
21     {
22         printf("你猜的日期晚了,你的luckyDay在前面哦\n")    ;
23     }
24     if(i<2)
25     {
26         printf("再猜(1~30):"); 
27     }}
28        printf("次数用光了,偷偷告诉你,你的11月luckyDay是%d\n",luckyDay);
29    
30     return 0;
31 }

 

运行结果:

实验总结:

学会设随机种子以及srand()的用法

学会循环的使用

复习巩固了基础语法

 

posted @ 2024-10-10 23:27  noeleven  阅读(12)  评论(0编辑  收藏  举报