实验2

任务1:

代码:

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <time.h>
 4 
 5 #define N 5
 6 
 7 int main() {
 8     int number;
 9     int i;
10 
11     srand(time(0));
12     for(i = 0; i < N; ++i) {
13         number = rand() % 100 + 1;
14         printf("20490042%04d\n", number);
15     }
16 
17     return 0;
18 }

 

 

截图:image

 

问题:

1:在此专业学员中随机选取5人

2:随机生成从1到100的数(即每位学员编号的末尾不同值)

3.占四个字符,长度不够前面补0,来输出从0001到0100的数保证格式正确

4.保证随机取数每次取数结果不同(若删去则多次取数结果相同)

 

任务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 }

 

截图:image

 

问题:

1:为下一次循环的total-price赋值0,避免上次循环得到的值带入下次导致结果错误,保证多次循环开始时total-price

2:结束当层本次循环,开启下一次循环。即重新开始购买流程

 

任务3:

代码:

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

 

截图:image

 

任务4:

代码:

 1 #include<stdio.h>
 2 int main(){
 3     float total,money,max,min;
 4     total=0;
 5     max=0;
 6     min=20000;
 7     
 8     printf("输入今日开销,直到输入-1终止:\n");
 9     while(1){
10         scanf("%f",&money);
11            if(money==-1){
12             break;
13         }
14         if(money<=0||money>20000){
15             break;
16         }
17 
18         else{
19             if(max<=money){
20                 max=money;
21             }
22             if(min>=money){
23                 min=money;
24             }
25         }
26         total+=money;
27     } 
28     printf("今日累计消费总额:%.1f\n",total);
29     printf("今日最高一笔开销:%.1f\n",max);
30     printf("今日最低一笔开销:%.1f\n",min);
31     
32     return 0;
33 }

 

截图:image

 

 

任务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             printf("不能构成三角形\n"); 
 8         }
 9         else{
10             if(a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a){
11                 printf("直角三角形\n");
12             }
13             else if(a==b&&b==c&&a==c){
14                 printf("等边三角形\n");
15             } 
16             else if(a==b||b==c||a==c){
17                 printf("等腰三角形\n");
18             }
19             else{
20                 printf("普通三角形\n");
21             }
22         }
23     }
24     return 0;
25     
26     }

 

截图:image

 

任务6:

代码:

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

 

截图:image

 

posted @ 2026-04-06 15:34  cccccyh  阅读(14)  评论(0)    收藏  举报