实验2

实验任务1

源代码

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <time.h>
 4 
 5 #define N 5
 6 #define N1 80
 7 #define N2 35
 8 
 9 int main(){
10     int cnt;
11     int random_major, random_no;
12     
13     srand(time(NULL));
14     
15     cnt = 0;
16     while(cnt < N){
17         random_major = rand() % 2;
18         
19         if(random_major){
20             random_no = rand() % N1 + 1;
21             printf("20256343%04\n", random_no);
22         }
23         else{
24             random_no = rand() % N2 + 1;
25             printf("20256136%04d\n", random_no);
26         }
27         cnt++;
28     }
29     return 0;
30  } 

运行截图

捕获

2

第13行去掉后

3

问题1:代码 srand(time(NULL))的作用是使结果随时间的变化而变化

问题2:功能是随机生成学号

实验任务2

源代码

 1 #include <stdio.h>
 2 
 3 int main(){
 4     int choice, quantity;
 5     float total_price = 0, amount_paid, change;
 6     
 7     while (1){
 8         printf("\n自动饮料售卖机菜单:\n");
 9         printf("1. 可乐 - 3 元/瓶\n");
10         printf("2. 雪碧 - 3 元/瓶\n");
11         printf("3. 橙汁 - 5 元/瓶\n");
12         printf("4. 矿泉水 - 2 元/瓶\n");
13         printf("0. 退出购买流程\n");
14         printf("请输入饮料编号:");
15         scanf("%d", &choice);
16         
17         if(choice == 0)
18            break;
19            
20         if(choice < 1 || choice >4){
21             printf("无效的饮料编号, 请重新输入. \n");
22             continue;
23         } 
24         
25         printf("请输入购买数量:");
26         scanf("%d", &quantity);
27         
28         if(quantity < 0){
29             printf("购买数量不能为负数, 请重新输入. \n");
30             continue;
31         } 
32         
33         if(choice == 1 || choice == 2)
34            total_price += 3 * quantity;
35         else if(choice == 3)
36            total_price += 5 * quantity;
37         else
38            total_price += 2 * quantity;
39            
40            printf("请投入金额: ");
41            scanf("%f", &amount_paid);
42            
43            change = amount_paid - total_price;
44            printf("本次购买总价:%.2f 元\n", total_price);
45            printf("找零:%.2f 元\n", change);
46            
47            total_price = 0;
48     }
49     
50     printf("感谢您的购买,欢迎下次光临!\n");
51     return 0;
52 }

运行截图

4

问题1:如果去掉会使下一次循环的总价不为0

问题2:结束本次循环,继续下次循环

实验任务3

源代码

 

 1 #include <stdio.h>
 2 int main()
 3 {
 4     char ch;
 5     while (scanf("%c",&ch) != EOF){
 6         if(ch == 'r'){
 7         printf("stop!\n");}
 8         else if(ch == 'g'){
 9         printf("go go go\n");}
10         else if(ch == 'y'){
11         printf("wait a minute\n");}
12         else{
13         printf("something must be wrong\n");}
14         getchar();
15     }
16     return 0;
17 }

运行截图

屏幕截图 2025-10-16 105154

实验任务4

源代码

 

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

运行截图

屏幕截图 2025-10-17 081038

实验任务5

源代码

 

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

运行截图

屏幕截图 2025-10-18 153420

实验任务6

源代码

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

运行截图

屏幕截图 2025-10-18 153628

 

posted @ 2025-10-18 15:44  humeop  阅读(3)  评论(0)    收藏  举报