1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <time.h> 4 5 #define N 5 6 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 }
问题一:随机生成(0,100】的整数。
问题二:在生成的数左边添加0,使得生成的数达到4位。
问题三:在学号尾号在(0,100】的学生中随机抽取四位学生。
任务二:
1 #include <stdio.h> 2 3 int main() { 4 int choice, quantity; 5 float total_price = 0, amount_paid, change; 6 7 while (1) { 8 printf("\n自动饮料售卖机菜单:\n"); 9 printf("1. 可乐 - 3 元/瓶\n"); 10 printf("2. 雪碧 - 3 元/瓶\n"); 11 printf("3. 橙汁 - 5 元/瓶\n"); 12 printf("4. 矿泉水 - 2 元/瓶\n"); 13 printf("0. 退出购买流程\n"); 14 printf("请输入饮料编号: "); 15 scanf("%d", &choice); 16 17 if (choice == 0) 18 break; 19 20 if (choice < 1 || choice > 4) { 21 printf("无效的饮料编号,请重新输入。\n"); 22 continue; 23 } 24 25 printf("请输入购买的数量: "); 26 scanf("%d", &quantity); 27 28 if (quantity < 0) { 29 printf("购买数量不能为负数,请重新输入。\n"); 30 continue; 31 } 32 33 switch (choice) { 34 case 1: 35 case 2: 36 total_price += 3 * quantity; 37 break; 38 case 3: 39 total_price += 5 * quantity; 40 break; 41 case 4: 42 total_price += 2 * quantity; 43 break; 44 } 45 46 printf("请投入金额: "); 47 scanf("%f", &amount_paid); 48 49 change = amount_paid - total_price; 50 printf("本次购买总价: %.2f 元\n", total_price); 51 printf("找零: %.2f 元\n", change); 52 53 total_price = 0; 54 } 55 56 printf("感谢您的购买,欢迎下次光临!\n"); 57 return 0; 58 }
问题一:
问题一:用途是在每完成一次交易后将总价重新变为零,如果去掉,在多次购买时,总价会不断累加,将前一次的总价累加到下一次;
问题二:break语句会终止并跳出当前所在循环,继续执行循环体后面的代码,直接结束整个购买流程;continue语句会使程序跳过本次循环中continue后面的代码,直接回到循环的条件判断处,开始下一次循环;
问题三:没必要,因为:在进入 switch (choice) 语句之前,程序已经通过 if (choice < 1 || choice > 4) 对 choice 的值进行了有效性检查,只有当 choice 的值为1、2、3、4或者0时程序才会继续执行后续代码。而当 choice 为0时,会通过 break 语句跳出循环,不会进入 switch 语句。所以进入 switch 语句时, choice 的值必然是1、2、3、4中的一个,不存在其他可能的值,也就不会出现需要 default 子句来处理的意外情况,因此没必要增加 default 子句。
任务三:
1 #include<stdio.h> 2 #include<stdlib.h> 3 4 int main() 5 { 6 char color; 7 8 while(scanf("%c",&color)!=EOF){ 9 10 switch(color){ 11 case 'r':printf("stop\n");break; 12 case 'g':printf("go go go\n");break; 13 case 'y':printf("waint a minute\n");break; 14 default:printf("illegal input\n"); 15 } 16 while((getchar())!='\n'); 17 } 18 system("pause"); 19 20 return 0; 21 }
任务四:
1 #include<stdio.h> 2 #include<stdlib.h> 3 4 int main() 5 { 6 float total_input=0.0,max_input=0.0,min_input=0.0; 7 float input; 8 printf("输入今日开销,直到输入-1为止:\n"); 9 scanf("%f",&input); 10 max_input=input; 11 min_input=input; 12 while(input> -1 && input<=20000 ){ 13 total_input += input; 14 if(input>max_input) max_input = input; 15 if(input<min_input) min_input = input; 16 scanf("%f",&input); 17 } 18 printf("今日累计消费总额:%.1f\n",total_input); 19 printf("今日最高一笔开销:%.1f\n",max_input); 20 printf("今日最低一笔开销:%.1f\n",min_input); 21 22 system("pause"); 23 return 0; 24 }
任务五:
1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<time.h> 4 5 int main() 6 { 7 int lucky_date; 8 int date; 9 int i=3; 10 srand((unsigned int )time(NULL)); 11 lucky_date = rand() %30 +1; 12 13 printf("猜猜2025年4月哪一天是你的lucky day\n"); 14 printf("开始喽,你有三次机会,猜吧(1~30):"); 15 16 while(i>0){ 17 scanf("%d",&date); 18 if (date == lucky_date){ 19 printf("哇,猜中了:-)\n"); 20 return 0; 21 } 22 else if(date < lucky_date){ 23 printf("你猜的日期早了,你的lucky day还没到呢\n"); 24 } 25 else 26 { 27 printf("你猜的日期晚了,你的lucky day 在前面哦\n"); 28 } 29 i--; 30 if(i > 0){ 31 printf("再猜(1~30):"); 32 } 33 34 } 35 36 printf("次数用完啦,偷偷告诉你,4月你的lucky day是%d号\n",lucky_date); 37 38 system("pause"); 39 return 0; 40 41 }
任务六:
1 #include <stdio.h> 2 #include <stdlib.h> 3 4 int main() { 5 int n, i, j, k; 6 printf("input n:"); 7 scanf("%d", &n); 8 for (i = 2*n-1; i >= 1; i=i-2) { 9 int tab_count = (2*n -1-i)/2; 10 for(k = 0; k < tab_count; k++){ 11 printf("\t"); 12 } 13 for (j = 0; j < i; j++) { 14 printf(" 0 "); 15 printf(" "); 16 } 17 printf("\n"); 18 tab_count = (2*n -1-i)/2; 19 for(k = 0; k < tab_count; k++){ 20 printf("\t"); 21 } 22 for (j = 0; j < i; j++) { 23 printf("<H>"); 24 printf(" "); 25 } 26 printf("\n"); 27 tab_count = (2*n -1-i)/2; 28 for(k = 0; k < tab_count; k++){ 29 printf("\t"); 30 } 31 for (j = 0; j < i; j++) { 32 printf("I I"); 33 printf(" "); 34 } 35 printf("\n"); 36 } 37 system("pause"); 38 return 0; 39 }