实验2

实验1:

源代码:

 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

             问题1:通过循环5次随机生成001到100的数字,经输出得到5位学员的学号。

             问题2:将一个很大的随机数取余100可以得到0到99的数字,再加1得到1到100的数字。

             问题3:%4d是生成一位4位数的数,前面不足的数用0补足,在这里就生成了0001到0100的数字。

             问题4:rand需要依赖于srand声明来生成随机数,若前面无srand作为种子来生成随机数会默认为rand(1),导致每次调用的数是一样的。

 

实验2:

 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 }

     2

     问题1:会导致第二次输入时,第二次的价格会累加在第一次的价格上,而不是重新计算价格。

      问题2:结束本次循环,从头开始重新循环。

 

实验3:

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

ccccc

 

实验4:

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

ddddddddddddd

 

实验5:

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

qwe

 实验6:

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

caizhong

meizhong

 

posted @ 2026-04-02 19:13  yfk123  阅读(0)  评论(0)    收藏  举报