实验二
task1
#include <stdio.h> #include <stdlib.h> #include <time.h> #define N 5 int 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:取得的随机数为4位数,不够的用0补齐
3:生成204900420001~204900420100之间的随机数
tsak2
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 }

1:把0赋值给total-price,若没有会使total-price无初始值
2:break跳出当前循环,continue跳过当前循环的剩余部分,进行下一次循环
3:需要,若未选择1,2,3,4,0则需要提示信息,便于提醒
task3
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h>\ int main() { char light; printf("请输入交通信号灯颜色:"); scanf("%c", &light); switch (light) { case'g': printf("go go go\n"); break; case'y': printf("wait a minute\n"); break; case'r': printf("stop\n"); break; default: printf("something must be wrong"); break; } return 0; }




task4
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include<stdlib.h> int main() { double money, max, min, average, count, sum; money = 0; count = 0; sum = 0; max = 0; min = 20000; printf("输入今日开销,直到输入-1终止:\n"); while (1) { scanf("%lf", &money); if (money == -1) { break; } if (money > max) { max = money; count++; } if (money <min) { min = money; count++; } sum = sum + money; } average = sum / count; printf("今日累计消费总额:%.1lf\n", sum); printf("今日最高一笔开销:%.1lf\n", max); printf("今日最低一笔开销:%.1lf\n", min); system("pause"); return 0; }

task5
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include<time.h> #include<stdlib.h> int main() { int a,guess,count; srand((unsigned int)time(NULL)); a = rand()%31; printf("猜猜2025年4月哪一天是你的lucky day\n"); printf("开始喽,你有三次机会,猜吧(1~30):"); for (count = 0; count < 3; ++count) { scanf("%d", &guess); if (a > guess) { printf("你猜的日期早了,你的lucky day还没到呢\n"); } else if (a < guess) { printf("你猜的日期晚了,你的lucky day在前面哦\n"); } else if (a == guess) { printf("哇,猜中了:-)\n"); return 0; } printf(" 再猜(1~30):"); } printf("次数用完啦。偷偷告诉你,4月你的lucky day是%d号\n", a); return 0; }

task6
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> int main() { int hang, a, b; printf("请输入倒三角的行数: "); scanf("%d", &hang); for (a = hang;a > 0;--a) { for (b = 0;b < hang - a;b++) { printf(" "); } for (b = 0; b < 2 * a - 1; ++b) { printf(" 0 "); printf(" "); } printf("\n"); for (b = 0;b < hang - a;b++) { printf(" "); } for (b = 0; b < 2 * a - 1; ++b) { printf("<H>"); printf(" "); } printf("\n"); for (b = 0;b < hang - a;b++) { printf(" "); } for (b = 0; b < 2 * a - 1; ++b) { printf("I I"); printf(" "); } printf("\n"); printf("\n"); } return 0; }



浙公网安备 33010602011771号