实验报告2

task1

代码:

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <time.h>
 4 #define N 5
 5 int main() {
 6     int number;
 7     int i;
 8     srand(time(0));   // 以当前系统时间作为随机种子
 9     for(i = 0; i < N; ++i) {
10         number = rand() % 100 + 1;
11         printf("20490042%04d\n", number);
12      }
13     return 0;
14 }

问题1:随机生成学号

问题2:生成100以内的随机数

问题3:生成格式为0***的编号

问题4:每次运行都生成不同的随机数

task2

代码:

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

问题1:去掉的话,每次购买的价钱都是在之前购买的前提上累加的

问题2:跳过本轮循环直接进入下一循环

task3

代码:

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

截图:

image

 task4

代码:

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

 

截图:

image

 task5

代码:

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

截图:

image

 task6

代码:

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

截图:

image

 

posted @ 2026-04-01 11:44  franxx2022  阅读(0)  评论(0)    收藏  举报