实验2

1.实验任务1

源代码

#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;
}

运行截图

sy

回答   1.随机生成 5 个 1~100 之间的整数,并且按照固定的格式输出

          2.rand():生成一个随机整数

            %100:取余,得到 0~99 的数

            +1:最终得到 1~100 的随机整数

          3.输出占四位宽度的整数,不足4位在前面补0

          4.使每次生成不一样的随机数

2.实验任务2

源代码

#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;
        }

        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);
        printf("找零: %.2f 元\n", change);

        total_price = 0;
    }

    printf("感谢您的购买,欢迎下次光临!\n");
    return 0;
}

运行截图

屏幕截图 2026-04-04 191853

回答   1.去掉后,程序会保留上一次的总价,所以当下一次购买时,总价会在上次基础上继续累加,导致计算错误。

          2.跳过本次循环中 ,continue 之后的所有代码,直接回到循环的开头。

3.实验任务3

源代码

#include <stdio.h>

int main() {
	char c;

	while (scanf("%c",&c) != EOF) {
		if (c == '\n') continue;

		if (c == 'r') {
			printf("stop!\n");
		}else if (c == 'g') {
			printf("go,go,go\n");
		}else if(c == 'y') {
			printf("wait a minute\n");
		} else {
			printf("somethinf must be wrong...\n");
		}
	}
	return 0;
}

运行截图

1

4.实验任务4

源代码

#include <stdio.h>

int main() {
    
    float cost, total = 0.0, max, min;
    int count = 0; 

    printf("输入今日开销,直到输入-1终止:\n");

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

        
        if (cost == -1) {
            break;
        }

        
        if (cost <= 0 || cost > 20000) {
            printf("输入无效,请输入0~20000之间的数值!\n");
            continue;
        }

        
        total += cost;
        count++;

        
        if (count == 1) {
            max = cost;
            min = cost;
        } else {
            
            if (cost > max) {
                max = cost;
            }
            
            if (cost < min) {
                min = cost;
            }
        }
    }

    
    printf("今日累计消费总额:%.1f\n", total);
    printf("今日最高一笔开销:%.1f\n", max);
    printf("今日最低一笔开销:%.1f\n", min);

    return 0;
}

运行截图

屏幕截图 2026-04-04 192625

5.实验任务5

源代码

#include <stdio.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*a + b*b == c*c || a*a + c*c == b*b || b*b + c*c == a*a) {
                printf("直角三角形\n");
            }
            
            else if (a == b || a == c || b == c) {
                printf("等腰三角形\n");
            }
            
            else {
                printf("普通三角形\n");
            }
        }
    }

    return 0;
}

运行截图

屏幕截图 2026-04-04 193049

6.实验任务6

源代码

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

int main() {
    
    srand((unsigned)time(NULL)); 
    int lucky = rand() % 30 + 1;  

    int guess;
    int count = 0; 

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

    
    while (count < 3) {
        scanf("%d", &guess);
        count++;

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

        
        if (count < 3) {
            printf("再猜(1~30):");
        }
    }

    
    if (count == 3 && guess != lucky) {
        printf("次数用光啦。4月你的lucky day是%d号\n", lucky);
    }

    return 0;
}

运行截图

屏幕截图 2026-04-04 193615屏幕截图 2026-04-04 193831

posted @ 2026-04-07 21:45  九天风谷  阅读(1)  评论(0)    收藏  举报