实验任务1
#include<stdio.h> #include<stdlib.h> #include<time.h> #define N 5int main() {int number;int i;srand(time(0));for(i=0;i<N;++i){number=rand()%100+1;printf("20490042%04d\n",number);}return 0; }
问题1:生成一个1~100的随机数
问题2:保留四位整数
问题3:随机抽取学员
实验任务2
#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;}switch (choice) {case 1:case 2:total_price += 3 * quantity;break;case 3:total_price += 5 * quantity;break;case 4:total_price += 2 * quantity;break;}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:break是跳出并终止循环,continue是跳出此次循环,继续下一次循环
问题3:不需要,前面已经进行了错误排查
实验任务3
#include<stdio.h> int main() {while(1){char input;input=getchar();if(input>='A'&&input<='Z')input+=32;if(input=='z')break;switch(input){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");} getchar();}return 0; }
实验任务4
#include <stdio.h> int main() {double num,s;double max=0,min=20000;while (1){scanf("%lf", &num);if (num == -1) break;elses+=num;if(num>max)max=num;elsemax=max;if(num<min)min=num;elsemin=min;}printf("今日累计消费总额:%.1f\n",s); printf("今日最高一笔开销:%.1f\n",max);printf("今日最低一笔开销:%.1f\n",min); return 0;}
实验任务5
#include<stdio.h> #include<stdlib.h> #include<time.h> #define N 5 int main() {int luckyDay,guess,chance=3;srand(time(0));luckyDay=rand()%30+1;printf("猜猜2025年4月哪一天是你的luckyDay\n");printf("开始喽,你有三次机会,猜吧[1~30]:");while(chance>0){scanf("%d",&guess);if(guess==luckyDay){printf("哇,猜中了:-)\n");break;}else if(guess<luckyDay){printf("你猜的日期早了,你的luckyDay还没到呢\n"); }else{printf("你猜的日期晚了,你的luckyDay在前面哦\n");}chance--;if(chance>=1)printf("再猜[1~30]:"); }printf("次数用完啦,偷偷告诉你,你的luckyDay是%d号\n",luckyDay);return 0; }
实验任务6
#include<stdio.h> int main() {int n,i,j;printf("input n:");scanf("%d",&n);for(i=0;i<n;++i){for(j=0;j<2*i;j++){printf(" ");}for(j=0;j<2*(n-i)-1;j++){printf(" 0 "); }printf("\n");for(j=0;j<2*i;j++){printf(" ");}for(j=0;j<2*(n-i)-1;j++){printf(" <H> "); }printf("\n");for(j=0;j<2*i;j++){printf(" ");}for(j=0;j<2*(n-i)-1;j++){printf(" I I ");}printf("\n");}return 0; }