巨兔12138 发表于 2020-5-5 12:32:31

运行C++文件按下回车键闪退

#include<iostream>
int main()
{
        void sort(int x,int y,int z);
        int x,y,z;
        std::cin>>x>>y>>z;
        sort(x,y,z);
        return 0;
}
void sort(int x,int y,int z)
{
        int temp;
        if(x>y)
        {
                temp=x;
                x=y;
                y=temp;
        }
        if(x>z)
        {
                std::cout<<z<<','<<x<<','<<y<<std::endl;
        }
        else if(z<y)
        {
                std::cout<<x<<','<<z<<','<<y<<std::endl;
        }
        else
        {
                std::cout<<x<<','<<y<<','<<z<<std::endl;
        }

}
请问各位大佬们,为什么我的上述代码
在启用调试后,输入三个数字,比如“7,5,9”
再按回车键
不显示排序反而闪退
这是为什么啊

永恒的蓝色梦想 发表于 2020-5-5 12:35:08

#include<iostream>
int main()
{
      void sort(int x,int y,int z);
      int x,y,z;
      std::cin>>x>>y>>z;
      sort(x,y,z);
cin>>x;
      return 0;
}
void sort(int x,int y,int z)
{
      int temp;
      if(x>y)
      {
                temp=x;
                x=y;
                y=temp;
      }
      if(x>z)
      {
                std::cout<<z<<','<<x<<','<<y<<std::endl;
      }
      else if(z<y)
      {
                std::cout<<x<<','<<z<<','<<y<<std::endl;
      }
      else
      {
                std::cout<<x<<','<<y<<','<<z<<std::endl;
      }

}

liuzhengyuan 发表于 2020-5-5 12:36:59

加一个
system("pause");
楼上的方法也行

qiuyouzhi 发表于 2020-5-5 12:37:02

#include<iostream>
int main()
{
      void sort(int x,int y,int z);
      int x,y,z;
      std::cin>>x>>y>>z;
      sort(x,y,z);
      system("pause");
      return 0;
}
void sort(int x,int y,int z)
{
      int temp;
      if(x>y)
      {
                temp=x;
                x=y;
                y=temp;
      }
      if(x>z)
      {
                std::cout<<z<<','<<x<<','<<y<<std::endl;
      }
      else if(z<y)
      {
                std::cout<<x<<','<<z<<','<<y<<std::endl;
      }
      else
      {
                std::cout<<x<<','<<y<<','<<z<<std::endl;
      }

}

巨兔12138 发表于 2020-5-5 17:50:59

永恒的蓝色梦想 发表于 2020-5-5 12:35


谢谢了!

巨兔12138 发表于 2020-5-5 17:51:53

qiuyouzhi 发表于 2020-5-5 12:37


谢谢了

巨兔12138 发表于 2020-5-5 18:01:18

liuzhengyuan 发表于 2020-5-5 12:36
加一个

楼上的方法也行

#include<iostream>
int main()
{
        void sort(int x,int y,int z);
        int x,y,z;
        std::cin>>x>>y>>z;
        sort(x,y,z);
        return 0;
        system("pause");
}
void sort(int x,int y,int z)
{
        int temp;
        if(x>y)
        {
                temp=x;
                x=y;
                y=temp;
        }
        if(x>z)
        {
                std::cout<<z<<','<<x<<','<<y<<std::endl;
        }
        else if(z<y)
        {
                std::cout<<x<<','<<z<<','<<y<<std::endl;
        }
        else
        {
                std::cout<<x<<','<<y<<','<<z<<std::endl;
        }

}
您好,请问system("pause")是加到main函数中吗
如果是,那为什么我在调试的时候
输入6 2 5,再按回车
就又闪退了呢

liuzhengyuan 发表于 2020-5-5 19:25:27

巨兔12138 发表于 2020-5-5 18:01
您好,请问system("pause")是加到main函数中吗
如果是,那为什么我在调试的时候
输入6 2 5,再按回车 ...

你的pause 要加在return 0; 的前面
#include<iostream>
int main()
{
      void sort(int x,int y,int z);
      int x,y,z;
      std::cin>>x>>y>>z;
      sort(x,y,z);
      system("pause");
      return 0;
}
void sort(int x,int y,int z)
{
      int temp;
      if(x>y)
      {
                temp=x;
                x=y;
                y=temp;
      }
      if(x>z)
      {
                std::cout<<z<<','<<x<<','<<y<<std::endl;
      }
      else if(z<y)
      {
                std::cout<<x<<','<<z<<','<<y<<std::endl;
      }
      else
      {
                std::cout<<x<<','<<y<<','<<z<<std::endl;
      }

}

巨兔12138 发表于 2020-5-5 19:34:06

liuzhengyuan 发表于 2020-5-5 19:25
你的pause 要加在return 0; 的前面

好的谢谢啦
页: [1]
查看完整版本: 运行C++文件按下回车键闪退