daizybroa

导航

作业2

task1:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define N 5

int main() {
    int number;
    int i;

    srand(time(0));     // 以当前系统时间作为随机种子
    for(i = 0; i < N; ++i) {
        number = rand() % 100 + 1;
        printf("20490042%04d\n", number);
    }

    return 0;
}

问题1:生成0到100以内的随机数字

问题2:保证生成数字为4位不足的用0在前补足

问题3:生成一串可以当作学号的随机数字

 

task2:

 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         switch (choice) {
34             case 1:
35             case 2:
36                 total_price += 3 * quantity;
37                 break;
38             case 3:
39                 total_price += 5 * quantity;
40                 break;
41             case 4:
42                 total_price += 2 * quantity;
43                 break;
44         }
45 
46         printf("请投入金额: ");
47         scanf("%f", &amount_paid);
48 
49         change = amount_paid - total_price;
50         printf("本次购买总价: %.2f 元\n", total_price);
51         printf("找零: %.2f 元\n", change);
52 
53         total_price = 0;
54     }
55 
56     printf("感谢您的购买,欢迎下次光临!\n");
57     return 0;
58 }
问题1:确保多组输入时每次程序开始的 total_price归零,去掉会导致总金额在多次运行中叠加。
问题2:break语句使代码在这一步停止运行,continue使代码继续运行。
问题3:没有必要,已经进行过choice的判断。

 task3:

 1 int main(){
 2     char(colour);
 3     colour = getchar();
 4     getchar();
 5     while (colour != EOF)
 6     {
 7         switch (colour)
 8         {
 9         case 'r':printf("stop!\n"); break;
10         case 'g':printf("go go go\n"); break;
11         case 'y':printf("wait a minute\n"); break;
12         default:printf("something must be wrong...\n"); break;
13         }
14         colour = getchar();
15         getchar();
16     }
17     return 0;
18 }

task4:

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

 task5:

 1 #define N 3
 2 int main()
 3 {
 4     int day, i, gus;
 5 
 6     printf("猜猜2025年4月哪一天是你的lucky day\n");
 7 
 8     srand(time(0));
 9     day = rand() % 30 + 1;
10 
11 
12     for (i = 0; i < N; i++)
13     {
14         if (i == 0)
15             printf("开始喽,你有三次机会,猜吧(1~30):");
16         else
17             printf("再猜(1~30):");
18         scanf_s("%d", &gus);
19 
20 
21         if (gus > day)
22             printf("你猜的日期晚了,你的lucky day在前面哦\n");
23         else if (gus < day)
24             printf("你猜的日期早了,你的lucky day还没到呢\n");
25         else
26         {
27             printf("哇,猜中了:-)\n");
28             break;
29         }
30     }
31 
32 
33 
34     if (i == 3)
35         printf("次数用完啦。悄悄告诉你,4月你的lucky day是%d号\n", day);
36 
37 
38     return 0;
39 }

task6:

 1 int main()
 2 {
 3 
 4     int n,i,j;
 5     printf("input n: ");
 6     scanf_s("%d", &n);
 7 
 8     for (i = n; i >0; i--)
 9     {
10         for (j = 0; j < n-i; j++)
11             printf(" \t");
12 
13         for (j = 0; j < 2*i-1; j++)
14             printf(" O \t");
15 
16         for (j = 0; j < n - i; j++)
17             printf(" \t");
18 
19         printf("\n");
20 
21         for (j = 0; j < n - i; j++)
22             printf(" \t");
23 
24         for (j = 0; j < 2*i-1; j++)
25             printf("<H>\t");
26 
27         for (j = 0; j < n - i; j++)
28             printf(" \t");
29 
30         printf("\n");
31 
32         for (j = 0; j < n - i; j++)
33             printf(" \t");
34 
35         for (j = 0; j < 2*i-1; j++)
36             printf("I I\t");
37 
38         for (j = 0; j < n - i; j++)
39             printf(" \t");
40 
41         printf("\n");
42         printf("\n");
43     }
44 
45     return 0;

 

 

 

posted on 2025-03-24 13:08  孤独在一方的星  阅读(14)  评论(0)    收藏  举报