实验二
第一题;
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):使生成的数是四位数
(3):随机生成一些号码在204900420001到204900420100的数
第二提
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):不需要。上面的代码已经对数字进行了限制。
第三题;
include <stdio.h>
int main() {
while (1)
{
char n;
printf("请输入一个字母\n");
scanf_s("%c", &n, 1);
getchar();
if (n == 'r')
printf("stop\n");
else if (n == 'g')
printf("gogogo\n");
else if (n == 'y')
printf("wait a minute\n");
else if (n != 'y' && n != 'g' && n != 'r')
printf("something wrong\n");
}
return 0;
}
第四题
include <stdio.h>
int main() {
double n=0, sum=0,max=0,min=20000;
while (n != -1) {
printf("请输入你一次的花销");
scanf_s("%lf", &n);
if (n == -1)
break;
while (n <= 0 || n > 20000) {
printf("输入你一次的开销");
scanf_s("%lff", &n);
}
if (n > max)
max = n;
if (n < min)
min = n;
sum = sum + n;
}
printf("今日花销是%.1f\n", sum);
printf("最多花了%.1f\n", max);
printf("最少花了%.1f\n", min);
return 0;
}
第五题
include <stdio.h>
include <stdlib.h>
include <time.h>
int main() {
int n = (rand() % 30 + 1), m = 0, t = 0;
while (t < 3) {
printf("请输入你的随机数\n");
scanf_s("%d", &m);
if (m < n)
printf("小了\n");
else if (m > n)
printf("大了\n");
else {
printf("正好\n");
break;
}
t = t + 1;
}
printf("你的幸运日是%d\n", n);
return 0;
}
第六题
#include <stdio.h>
int main() {
int n, i, j, k;
printf("input n: ");
scanf_s("%d", &n);
for (i = n; i >= 1; i--) {
for (j = n - i; j > 0; j--) {
printf(" ");
}
for (k = 0; k < i; k++) {
printf(" 0 ");
}
printf("\n");
for (j = n - i; j > 0; j--) {
printf(" ");
}
for (k = 0; k < i; k++) {
printf(" <H>");
}
printf("\n");
for (j = n - i; j > 0; j--) {
printf(" ");
}
for (k = 0; k < i; k++) {
printf(" I I");
}
printf("\n");
}
return 0;
}














前几个实验还好,我能写出来。第六题难度特别大,根本不会啊···小人太难打印了,害。虽然其他的也写完了,但我也发现里面有不少的bug,那些bug虽然不影响运行,但要是不按照要求来,就能卡出一些奇奇怪怪的东西来。但是问题不大。这次作业没感觉错的话比第一次的作业难一些···就相当于复习一下了吧。
浙公网安备 33010602011771号