编辑代码

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

int main() {
    int current; // 当前数值
    int choice;  // 玩家选择
    int multiplier; // 乘数
    int addValue; // 每轮增加的值
    
    // 初始化随机数种子
    srand(time(0));
    
    printf("欢迎来到西瓜大王游戏!\n");
    printf("规则:\n");
    printf("1. 初始选择一个1-10之间的数字\n");
    printf("2. 每轮会随机增加1或2\n");
    printf("3. 每轮有机会乘以一个正整数\n");
    printf("4. 最终结果:\n");
    printf("   50分 -> 季军\n");
    printf("   75分 -> 亚军\n");
    printf("   100分 -> 冠军\n");
    printf("   超过100分 -> 失败\n\n");
    
    // 获取初始数字
    do {
        printf("请输入初始数字(1-10): ");
        scanf("%d", &choice);
        if(choice < 1 || choice > 10) {
            printf("无效输入!请输入1-10之间的数字。\n");
        }
    } while(choice < 1 || choice > 10);
    
    current = choice;
    printf("初始数字: %d\n", current);
    
    // 游戏主循环
    while(current <= 100) {
        // 随机增加1或2
        addValue = rand() % 2 + 1; // 生成1或2
        current += addValue;
        printf("\n本轮增加: %d, 当前数值: %d\n", addValue, current);
        
        // 检查是否达到目标
        if(current == 50) {
            printf("恭喜!获得季军!\n");
            break;
        } else if(current == 75) {
            printf("恭喜!获得亚军!\n");
            break;
        } else if(current == 100) {
            printf("恭喜!获得冠军!\n");
            break;
        } else if(current > 100) {
            printf("超过100!游戏结束!\n");
            break;
        }
        
        // 获取乘数
        do {
            printf("请输入乘数(正整数,输入0跳过): ");
            scanf("%d", &multiplier);
            
            if(multiplier < 0) {
                printf("请输入正整数或0!\n");
            } else if(multiplier == 0) {
                printf("跳过乘法操作。\n");
            } else if(multiplier == 1) {
                printf("乘以1,数值不变。\n");
            } else {
                current *= multiplier;
                printf("乘以 %d, 当前数值: %d\n", multiplier, current);
                
                // 乘法后检查结果
                if(current == 50) {
                    printf("恭喜!获得季军!\n");
                    break;
                } else if(current == 75) {
                    printf("恭喜!获得亚军!\n");
                    break;
                } else if(current == 100) {
                    printf("恭喜!获得冠军!\n");
                    break;
                } else if(current > 100) {
                    printf("超过100!游戏结束!\n");
                    break;
                }
            }
        } while(multiplier < 0); // 确保输入有效
    }
    
    // 最终结果判断
    printf("\n游戏结束!最终得分: %d\n", current);
    if(current == 50) {
        printf("★ 季军 ★\n");
    } else if(current == 75) {
        printf("★★ 亚军 ★★\n");
    } else if(current == 100) {
        printf("★★★ 冠军 ★★★\n");
    } else if(current > 100) {
        printf("很遗憾,超过100分!\n");
    } else {
        printf("未达到任何奖项!\n");
    }
    
    return 0;
}