实验2

task1

源代码

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 #include<time.h>
 4 
 5 
 6 #define N 5
 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 }

运行结果截图task1

问题1:随机抽取五名学员

问题2:随机生成一个1~100的整数

问题3:统一格式都为四位

问题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 }

运行截图task2

问题1:无法重置总价格,后续循环结果错误

问题2:重新执行while语句,直到符合条件

task3

源代码

 1 #include<stdio.h>
 2 int main()
 3 {
 4     char r,g,y,ch;
 5     while(scanf("%c",&ch)!=EOF){
 6     getchar();
 7     switch(ch)
 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         printf("\n");
14         
15     }
16 }
17     return 0;
18  } 

运行截图

task3

task4

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

 

 截图屏幕截图 2026-04-07 165455

 

task5

源代码

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

截图屏幕截图 2026-04-07 192145

task6

代码

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

截图屏幕截图 2026-04-07 200053

 

posted @ 2026-04-07 20:02  文xuan  阅读(4)  评论(0)    收藏  举报