实验二
任务一
#include <stdio.h> #include <stdlib.h> #include <time.h> #define N 100 #define CNT 5 int main() { int number; int i; srand(time(0)); for(i = 0; i < CNT; ++i) { number = rand() % N + 1; printf("20490042%04d\n", number); } return 0; }

问题1:随机生成学号
问题2:随机生成数字
问题3:使输出数位为4
问题4:随机生成数字,删掉每次结果相同
任务二
#include <stdio.h> int main() { int choice, quantity; float total_price = 0, amount_paid, change; while (1) { printf("\n自动饮料售卖机菜单:\n"); printf("1. 可乐 - 3 元/瓶\n"); printf("2. 雪碧 - 3 元/瓶\n"); printf("3. 橙汁 - 5 元/瓶\n"); printf("4. 矿泉水 - 2 元/瓶\n"); printf("0. 退出购买流程\n"); printf("请输入饮料编号:"); scanf("%d", &choice); if (choice == 0) break; if (choice < 1 || choice > 4) { printf("无效的饮料编号, 请重新输入。\n"); continue; } printf("请输入购买的数量:"); scanf("%d", &quantity); if (quantity < 0) { printf("购买数量不能为负数, 请重新输入。\n"); continue; } if (choice == 1 || choice == 2) total_price += 3 * quantity; else if (choice == 3) total_price += 5 * quantity; else total_price += 2 * quantity; printf("请投入金额:"); scanf("%f", &amount_paid); change = amount_paid - total_price; printf("本次购买总价:%.2f元\n", total_price); printf("找零:%.2f\n", change); //total_price = 0; } printf("感谢您的购买,欢迎下次光临!\n"); return 0; }

问题1:让每次金额累加
问题2:有错误时立即重复循环
任务三
#include <stdio.h> int main() { char colour; int i; for(i=0;i<4;i++) { scanf("%c",&colour); getchar(); switch(colour) { case 'r':printf("stop!\n");break; case 'g':printf("go go go\n");break; case 'y':printf("wait a minute\n");break; default:printf("something must be wrong...\n"); } } return 0; }

任务四
#include <stdio.h> int main() { double a,sum=0,max=0,min=20000; printf("输出今日开销,直至输入-1终止:\n"); while(1) { scanf("%lf",&a); if(a==-1) break; else sum+=a; if(a>max) max=a; if(a<min) min=a; } printf("今日累计消费总额: %.1f\n", sum); printf("今日最高一笔开销: %.1f\n", max); printf("今日最低一笔开销: %.1f\n", min); return 0; }

任务五
#include <stdio.h> int main() { int a,b,c,i; for(i=0;i<5;i++) { scanf("%d%d%d",&a,&b,&c); if(a+b<=c||a+c<b||b+c<=a) printf("不能构成三角形\n"); else { if(a==b==c) { printf("等边三角形\n"); continue; } if(a==b||a==c||b==c) { printf("等腰三角形\n"); continue; } if(a*a==b*b+c*c||b*b==a*a+c*c||c*c==b*b+a*a) { printf("直角三角形\n"); continue; } else printf("普通三角形\n"); } } return 0; }

任务六
#include <stdio.h> #include <stdlib.h> #include <time.h> int main(){ int n,i; srand(time(0)); n = rand() % 30 + 1; printf("猜猜2026年11月哪一天是你的lucky day\n"); printf("开始喽,你有三次机会,猜吧(1~30):"); for ( i = 0; i < 3; i++) { int m; scanf("%d",&m); if (m < n) { printf("你猜的日期早了,你的lucky day还没到呢\n"); } else if( m == n) { printf("哇,猜中了:)");break; } else { printf("你猜的日期晚了,你的lucky day在前面哦\n"); } if (i==2) { printf("次数用光啦。11月你的lucky day是%d号",n); break; } printf("再猜(1~30):"); } return 0; }

浙公网安备 33010602011771号