实验二

任务一

  • 问题回答:
  1. 程序会生成5个1~100之间的随机整数,并按固定4位宽度(不足前面补 0)打印输出
  2. 产生一个 1 到 100 之间的随机整数,保存到变量 number
  3. 输出四位数字,如果数字不够4位,左边补0填充
  4. 用当前时间作为随机种子,让每次运行程序得到不一样的随机数序列。
    如果删掉这一行:种子固定为默认值,每次运行程序,出来的5个随机数永远都是同一组,达不到真正随机的效果。

任务二

  • 问题回答:
  1. 如果去掉这行代码,total_price 变量将不会在每次循环结束时清零,程序会在下一次购买时,将上一次购买的金额累加到 total_price 中。这会导致总价计算错误。
  2. continue 语句的作用是跳过当前循环体中剩余的语句,直接进入下一次循环的判断。

任务三

  • 源代码
点击查看代码
#include <stdio.h>

int main() {
	char ch;
	int i;
	for (i = 1; i  <= 4; i++) {

		ch = getchar();

		switch (ch) {
			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"); 
		}

		while(getchar() != '\n');
	}

	return 0;
}
  • 运行测试截图:

屏幕截图 2026-11-02 163124

任务四

  • 源代码:
点击查看代码
#include <stdio.h>
int main() {
    double expense;
    double sum = 0.0;
    double max = 0.0;
    double min = 20000.0;
    printf("输入今日开销,直到输入-1终止:\n");
    while (1) {
        scanf("%lf", &expense);
        if (expense == -1) {
            break;
        }
        sum += expense;
        if (expense > max) {
            max = expense;
        }
        if (expense < min) {
            min = expense;
        }
    }
    printf("今日累计消费总额:%.1f\n", sum);
    printf("今日最高一笔开销:%.1f\n", max);
    printf("今日最低一笔开销:%.1f\n", min);
    return 0;
}

  • 运行测试截图:

image

任务五

  • 源代码:
点击查看代码
int main() {
	int a, b, c;
	int i;

	for (i = 0; i < 5; i++) {  
		scanf("%d %d %d", &a, &b, &c);


		if (a + b <= c || a + c <= b || b + c <= a) 
			printf("不能构成三角形\n");
		 

		else if (a == b && b == c) 
			printf("等边三角形\n");
		
		else if (a == b || b == c || a == c) 
			printf("等腰三角形\n");

	
		else if (a * a + b * b == c * c || b * b + c * c == a * a || a * a + c * c == b * b) 
			printf("直角三角形\n");
		

		else 
			printf("普通三角形\n");
		
	}

	return 0;
}
  • 运行测试截图:

屏幕截图 2026-11-02 220304

任务六

  • 源代码:
点击查看代码
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main() {
    int target;
    int guess;
    int i;

    srand(time(NULL));
    target = rand() % 30 + 1;

    printf("猜猜2026年11月哪一天是你的lucky day\n");

    for (i = 0; i < 3; i++) {
        if (i == 0) {
            printf("开始喽,你有3次机会,猜吧(1~30): ");
        } else {
            printf("再猜(1~30): ");
        }
        scanf("%d", &guess);

        if (guess == target) {
            printf("哇,猜中了:)\n");
            break;
        } else if (guess < target) {
            printf("你猜的日期早了,你的lucky day还没到呢\n");
        } else {
            printf("你猜的日期晚了,你的lucky day在前面哦\n");
        }
    }

        printf("次数用光啦。11月你的lucky day是%d号\n", target);

    return 0;
}
  • 运行测试截图:

屏幕截图 2026-11-02 221504

posted @ 2026-11-02 22:20  魏曦  阅读(3)  评论(0)    收藏  举报