徐梓煜_SHARK 2024-06-23 20:31 采纳率: 50%
浏览 2

它,依旧报错!www

它,依旧报错!
是“#include <random.h>”这一行报错了!
我琢磨了两天也没琢磨出来(QAQ. )

#include<bits/stdc++.h>
#include<windows.h>
#include<stdio.h>
#include<conio.h>
#include<time.h>
#include<cmath>
#include <stdlib.h>
#include <iostream>
#include <random.h>
using namespace std;
int main()
{
    int a,b,ljkjd=1,kjkjd=1,infantry=5,tank=0,plane=0,month=1,jd=0; 
    int arr[3]={1,2,3};
    cout<<"    ■■■          ■     ■ ■"<<endl;
    cout<<"                    ■■ ■■■■"<<endl;
    cout<<"    二战            ■     ■"<<endl;
    cout<<"                  ■  ■    ■ ■ ■"<<endl;
    cout<<"   ■■■■         ■       ■■ "<<endl;
    cout<<"              1.0版本  "<<endl;
    printf("按任意键开始\n");
    getch();
    system("cls");
    //1941年介入战争 
    MessageBox(NULL,"步兵<坦克<飞机,步兵>飞机","注",MB_OK);
    MessageBox(NULL,"准备?","苏军",MB_OK);
    MessageBox(NULL,"开始!","苏军",MB_OK);
    system("cls");
    cout<<"1941年,德军正式向苏联宣战"<<endl;
    getch();
    while(1){
        cout<<"第"<<month<<"个月"<<endl<<"你要:1.生产 2.出击 "<<endl;
        cin>>a;
        if(a==1){
            while(1){
                cout<<"你要生产(研制)什么?1.步兵(1陆军科技点1攻击) 2.坦克(2陆军科技点2攻击) 3.飞机(3空军科技点2攻击)";
                cout<<endl<<"注:研制不会消耗科技点。";
                cin>>a;
                if(a==1&&ljkjd>=1){
                    cout<<"成功!步兵lv+1"<<endl;
                    printf("按任意键继续\n");
                    getch();
                    system("cls");month+=1;infantry+=1;break;
                }
                else{
                    cout<<"陆军科技点不足!"<<endl;
                    printf("按任意键继续\n");
                    getch();
                    system("cls");continue;
                }
                if(a==2&&ljkjd>=2){
                    cout<<"成功!坦克lv+1"<<endl;
                    printf("按任意键继续\n");
                    getch();
                    system("cls");month+=1;tank+=2;break;
                }
                else{
                    cout<<"陆军科技点不足!"<<endl;
                    printf("按任意键继续\n");
                    getch();
                    system("cls");continue;
                }
                if(a==3&&kjkjd>=3){
                    cout<<"成功!飞机lv+1"<<endl;
                    printf("按任意键继续\n");
                    getch();
                    system("cls");month+=1;plane+=2;break;
                }
                else{
                    cout<<"空军科技点不足!"<<endl;
                    printf("按任意键继续\n");
                    getch();
                    system("cls");continue;
                }
            }
        }
        if(a==2){
            int size=sizeof(arr)/sizeof(arr[0]);
            while(1){
                random_device rd;
                mt19937 gen(rd());
                uniform_int_distribution<> dis(0, size - 1);
                int randomIndex = dis(gen);
                int enemy = arr[randomIndex];
                if(infantry>enemy||tank>enemy||plane>enemy||infantry+tank>enemy){
                    cout<<"胜利! 获得:陆军科技点*3! 空军科技点*1!"<<endl;
                    ljkjd+=3;kjkjd+=1;month++;jd+=2;
                    printf("按任意键继续\n");
                    getch();
                    system("cls");break;arr[randomIndex]+=1;
                }
                else if(infantry=enemy||tank=enemy||plane=enemy||infantry+tank=enemy){
                    cout<<"平局!"<<endl;
                    printf("按任意键继续\n");
                    getch();
                    system("cls");break;month++;jd+=1;arr[randomIndex]+=1;
                }
                else{
                    cout<<"失败!"<<endl;
                    printf("按任意键继续\n");
                    getch();
                    system("cls");month++;
                    if(jd>1)
                        jd-=1;break;
                    jd=1;break;
                }
            }
        }
        if(jd==0&&month==12){
            cout<<"德军直夺莫斯科"<<"--------结局1:灭亡--------";
            printf("按任意键继续\n");
            getch();
            system("cls");
            return 0;
        }
        if(jd==10){
            cout<<"恭喜,首相,您带领苏维埃走向了胜利!"<<endl<<"共用时:"<<month<<" 个月";
            cout<<"再见,首相 您该休息会儿了"<<endl<<"             ★"<<endl<<"--------结局2:胜利!-------"<<endl<<"制作:徐梓煜";
            return 0;
        }
        continue;
    }
    return 0;
}

*( \口/ )/(XP )

  • 写回答

3条回答 默认 最新

  • 阿里嘎多学长 2024-06-23 20:47
    关注

    以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:


    看起来你遇到了关于C++编程中的头文件包含问题。首先,我想指出#include <random.h>这个头文件并不是C++标准库的一部分,而是GCC编译器特有的扩展,它提供了一些非标准的随机数生成功能。如果你使用的是GCC编译器,这个头文件应该是可以正常工作的,但如果你使用的是其他编译器,比如MSVC(Visual Studio),或者你的编译环境不支持这个扩展,那么就会出现编译错误。

    这里是一些可能的解决方案:

    1. 使用C++11标准库中的随机数生成器:如果你的项目支持C++11或更高版本,你可以使用<random>头文件中的随机数生成器,它提供了丰富的随机数生成功能,并且是C++标准的一部分。例如:
    #include <random>
    
    // 使用mt19937生成器
    std::mt19937 gen(std::random_device{}());
    
    // 定义分布范围
    std::uniform_int_distribution<> dis(0, size - 1);
    
    // 生成随机数
    int randomIndex = dis(gen);
    
    1. 检查编译器和编译选项:确保你的编译器支持你正在使用的头文件。如果你使用的是GCC,确保编译时使用了正确的编译选项,比如-std=c++11或更高版本。

    2. 使用条件编译:如果你的代码需要在不同的编译器之间工作,你可以使用条件编译来包含不同的头文件:

    #ifdef __GNUC__
    #include <random.h>
    #else
    #include <random>
    #endif
    
    1. 更新你的开发环境:如果你使用的是较旧的开发环境,可能需要更新到支持C++11或更高版本的新版本。

    2. 查看错误信息:编译错误通常会提供一些线索,比如缺少的文件或不支持的特性。仔细阅读错误信息,它可能会告诉你问题的具体所在。

    3. 搜索在线资源:你可以搜索相关的错误信息或问题,看看其他人是如何解决的。Stack Overflow是一个很好的资源,你可以在那里找到许多类似问题的解决方案。

    希望这些建议能帮助你解决问题。如果你需要更具体的帮助,请提供更详细的错误信息或描述你使用的编译器和开发环境。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 6月23日

悬赏问题

  • ¥15 Stable Diffusion,用Ebsynth utility在视频选帧图重绘,第一步报错,蒙版和帧图没法生成,怎么处理啊
  • ¥15 请把下列每一行代码完整地读懂并注释出来
  • ¥15 pycharm运行main文件,显示没有conda环境
  • ¥15 易优eyoucms关于二级栏目调用的问题
  • ¥15 寻找公式识别开发,自动识别整页文档、图像公式的软件
  • ¥15 为什么eclipse不能再下载了?
  • ¥15 编辑cmake lists 明明写了project项目名,但是还是报错怎么回事
  • ¥15 关于#计算机视觉#的问题:求一份高质量桥梁多病害数据集
  • ¥15 特定网页无法访问,已排除网页问题
  • ¥50 如何将脑的图像投影到颅骨上