kobe824

导航

实验2

任务1

#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);
}
system("pause");
return 0;

}

{5D237B18-DE98-4AAE-BF68-605238F00EDC}

问题1: 这个程序主要是用来生成5个随机学员编号,其中后4位为随机数,将他们用统一格式输出。
问题2: line13的作用是生成 1~100之间的随机整数。
问题3: %04d的作用是格式化输出整数,占4位不足的地方用0补充。
问题4: scrand(time(0))的作用是设置随机数种子,让每次运行结果不同,如果去掉,每次运行结果完全一样。


任务2

#include <stdlib.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;
	}

	if(choice == 1 || choice == 2)
	total_price += 3 * quantity;
	else if(choice == 3)
	total_price += 5 * quantity;
	else
	total_price += 2 * quantity;
	printf("请投入金额: ");
	scanf("%f", &amount_paid);
	change = amount_paid - total_price;
	printf("本次购买总价: %.2f 元\n", total_price);
	("找零: %.2f 元\n", change);
	total_price = 0;
}
printf("感谢您的购买,欢迎下次光临!\n");
system("pause");
return 0;
}

{3A3EEFDE-AD9A-4E1B-A13B-7D7978E016B4}

问题1: 多次购买时金额会累计叠加,不会重置
问题2: 终止本次循环,直接进行下一轮


任务3

#include<stdlib.h>

int main(){
	char ans;

	while(scanf(" %c",&ans)!=EOF){

	if (ans=='r')
		printf("stop!\n");
	
	else if (ans=='g')
		printf("go go go\n");
	
	else if (ans=='y')
		printf("wait a minute\n");
	
	else
		printf("something must be wrong..\n");
	}
	system("pause");
	return 0;
}

{54A98906-8E84-4A48-9C92-D8DF8E53EB6D}


任务4

#include<stdlib.h>
int main(){

	float price;
	float sum=0;
	float max=0,min=20000;
	
	
	printf("输入今日开销,直到输入-1时终止程序\n");

	while(1){
		
		scanf(" %f",&price);
		

		if (price==-1)
			break;
		
		sum += price;

		if (price>max)
			max=price;
			
		if (price<min)
			min=price;
	}
    printf("今日累计消费总额:%.1f\n",sum);
	printf("今日最高一笔开销: %.1f\n", max);
    printf("今日最低一笔开销: %.1f\n", min);

	system("pause");
    return 0;
}

{6E29576D-FE5D-45D8-8ACA-C35C6EBE8CF9}


任务5

#include <stdlib.h>
int main() {
    int a, b, c;

    while (scanf("%d %d %d", &a, &b, &c) != EOF) {

        if (a + b <= c || a + c <= b || b + c <= a) {
            printf("不能构成三角形\n");
        }
        else if (a == b && b == c) {
            printf("等边三角形\n");
        }
        else if (a == b || a == c || b == c) {
            printf("等腰三角形\n");
        }
        else if (a*a + b*b == c*c || a*a + c*c == b*b || b*b + c*c == a*a) {
            printf("直角三角形\n");
        }
        else {
            printf("普通三角形\n");
        }
    }
	system("pause");
    return 0;
}

{BB02F4B7-BE4F-4937-B7B9-C0D249A8C6BE}


任务6

#include <stdlib.h>
#include <time.h>

int main() {
    int lucky, guess;
    int i;

    srand(time(0));
    lucky = rand() % 30 + 1;

	printf("猜猜2026年4月哪一天是你的luckyday\n开始喽,你有3次机会,猜吧(1-30):");
    

    for (i = 1; i <= 3; i++) {
       
		scanf("%d", &guess);
        if (guess == lucky) {
            printf("哇,猜中了:)\n");
			system("pause");
            return 0;
        }
        else if (guess < lucky) {
            printf("你猜的日期早了,你的lucklyday还没到呢\n再猜(1-30):");
        }
        else {
            printf("你猜的日期晚了,你的lucklyday在前面哦\n再猜(1-30):");
        }
    }

    printf("次数用光啦,4月你的luckyday是%d号\n", lucky);

	system("pause");

    return 0;
}

{620167D8-7E00-483E-9BD7-4842A181E116}

{C264C070-5872-4472-B7D0-B2CF2043C8CB}

posted on 2026-04-01 17:28  kobebrant24  阅读(2)  评论(0)    收藏  举报