实验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 }
运行结果截图
问题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 }
运行截图
问题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 }
运行截图

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 }
截图
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 }
截图
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 }
截图

浙公网安备 33010602011771号