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 }
Q1:得到1~100的随机数
Q2:取得的随机数为4位数,不够的用0补齐
Q3:生成204900420001~204900420100之间的随机数
task2
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 }
Q1:把0赋值给total-price
Q2:break跳出当前循环,continue跳过当前循环的剩余部分,进行下一次循环
Q3:需要,若未选择1,2,3,4,0则需要提示信息,便于提醒
task3
1 #include <stdio.h> 2 3 int main() { 4 char input; 5 6 printf("请输入交通信号灯颜色:"); 7 scanf(" %c", &input); 8 9 switch (input) { 10 case 'g': 11 printf("go go go\n"); 12 break; 13 case 'y': 14 printf("wait a minute\n"); 15 break; 16 case 'r': 17 printf("stop!\n"); 18 break; 19 default: 20 printf("something must be wrong...\n"); 21 break; 22 } 23 24 return 0; 25 }
task4
1 #include <stdio.h> 2 #include <stdlib.h> 3 4 int main() 5 { 6 double money, max, min, average, count, sum; 7 printf("输入今日开销,直到输入-1终止:\n"); 8 money = 0; 9 average = 0; 10 count = 0; 11 sum = 0; 12 max=money; 13 min=money; 14 while (1) 15 { 16 scanf("%lf", &money); 17 18 if(money!=-1) 19 { 20 if(count==0) 21 { 22 min=money; 23 max=money; 24 } 25 else 26 { 27 if (money>max) 28 max = money; 29 if (money<min) 30 min = money; 31 } 32 sum=sum+money; 33 count+=1; 34 } 35 else 36 break; 37 } 38 average = sum/ count; 39 40 printf("今日累计消费总额:%.1lf", sum); 41 printf("今日最高一笔开销:%.1lf", max); 42 printf("今日最低一笔开销:%.1lf", min); 43 system("pause"); 44 return 0; 45 }
task5
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <time.h> 4 5 int main() { 6 int luckyDay, guess; 7 int attempts = 3; 8 9 srand(time(NULL)); 10 luckyDay = rand() % 30 + 1; 11 12 printf("猜猜2025年4月哪一天是你的lucky day\n"); 13 printf("开始喽,你有三次机会,猜吧(1~30):\n"); 14 15 for (int i = 0; i < attempts; i++) { 16 printf("再猜(1~30):"); 17 scanf("%d", &guess); 18 19 if (guess == luckyDay) { 20 printf("哇,猜中了:-)\n"); 21 return 0; 22 } else if (guess < luckyDay) { 23 printf("你猜的日期早了,你的lucky day还没到呢\n"); 24 } else { 25 printf("你猜的日期晚了,你的lucky day在前面哦\n"); 26 } 27 } 28 29 printf("次数用完啦。偷偷告诉你,4月你的lucky day是%d号\n", luckyDay); 30 31 return 0; 32 }
task6
1 #include <stdio.h> 2 3 int main() { 4 int rows, i, j; 5 6 7 printf("请输入倒三角的行数: "); 8 scanf("%d", &rows); 9 10 11 for (i = rows; i >= 1; --i) 12 { 13 14 for (j = 0; j < rows - i; ++j) { 15 printf(" "); 16 } 17 18 for (j = 0; j < 2 * i - 1; ++j) { 19 printf(" 0 "); 20 printf(" "); 21 } 22 printf("\n"); 23 for (j = 0; j < rows - i; ++j) {
24 printf(" "); 25 } 26 for (j = 0; j < 2 * i - 1; ++j) { 27 printf("<H>"); 28 printf(" "); 29 } 30 31 printf("\n"); 32 for (j = 0; j < rows - i; ++j) { 33 printf(" "); 34 } 35 for (j = 0; j < 2 * i - 1; ++j) { 36 printf("I I"); 37 printf(" "); 38 39 } 40 printf("\n"); 41 for (j = 0; j < rows - i; ++j) { 42 printf(" "); 43 } 44 printf("\n"); 45 } 46 47 return 0; 48 }