实验2

实验结论

实验任务1

源代码

 1 int main(){
 2     int cnt;
 3     int random_major,random_no;
 4     srand(time(NULL));
 5     cnt =0;
 6     while(cnt<N){
 7          random_major =rand()%2;
 8          if(random_major){
 9          random_no=rand()%N1+1;
10          printf("20256343%04d\n",random_no);
11          }else{
12               random_no=rand()%N2+1;
13               printf("20256136%04\n",random_no);
14          }
15          cnt++;
16     }
17     system("pause");
18     return 0;
19 }

运行结果截图

1

2

3

4

回答问题:

1.实验结果更具有随机性,删去后结果可能多次相同。

2.随机选择学生学号,可用作抽奖或点名···

实验任务2

源代码

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

运行结果截图

22

 回答问题:

1.去掉后,使total_price的输入值会影响下一次输入的参与计算的total_price值。

2.结束本次循环,但是不影响下一次运行。

实验任务3

源代码

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

运行结果截图

3

实验任务4

源代码

 

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

运行结果截图

4

实验任务5

源代码

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

运行结果截图

5

实验任务6

源代码

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

 

28      }
29 
30      
31      system("pause");
32      return 0;
33 }

运行结果截图

6.1

6.2

实验总结

1.scanf("")中不需要加\n,但是多组输出的话printf中必须有\n

2.用rand(),如果不加srand(TIME(NULL),结果虽然没错,但容易有重复。

posted @ 2025-10-14 20:27  wsh12345  阅读(6)  评论(0)    收藏  举报