注册 登录
编程论坛 C++教室

程序不能运行,打开后显示停止运行

east东 发布于 2016-09-27 20:41, 1905 次点击
#include<iostream>
using namespace std;
void paixu(int *A,int B)//A为一个数组,B为数组中数字个数
{
    cin>>B;
    for(int i=0;i<B-1;i++)
    {
        if (A[i]>A[i+1])
        {
            int b=A[i];
            A[i]=A[i+1];
            A[i+1]=b;
        }
    }
    for(int j=0;j<B;j++)
    {
        cout<<A[j]<<",";
    }
}
int main()
{
    int b;
    int A[b];
    for(int i=0;i<b;i++)
    {
        cin>>A[i];
    }
    paixu(A,b);
    return 0;
}
8 回复
#2
书生牛犊2016-09-27 20:50
int main()
{
    int b;//b没有定义初始化,又怎么能用于声明数组呢?所以当程序试图声明int A[b]的时候就出错了。
    int A[b];//额,我所已知的数组定义表示数组大小的b得是常量。
    for(int i=0;i<b;i++)
    {
        cin>>A[i];
    }
    paixu(A,b);
    return 0;
}
#3
east东2016-09-28 13:37
回复 2楼 书生牛犊
#include<iostream>
using namespace std;
void paixu(int *A,int B)//A为一个数组,B为数组中数字个数
{
    cin>>B;
    for(int i=0;i<B-1;i++)
    {
        if (A[i]>A[i+1])
        {
            int b=A[i];
            A[i]=A[i+1];
            A[i+1]=b;
        }
    }
    for(int j=0;j<B;j++)
    {
        cout<<A[j]<<",";
    }
}
int main()
{
    int b;
    cin>>b;  //加了这个后能运行了,但还是无法排序啊
    int A[b];
    for(int i=0;i<b;i++)
    {
        cin>>A[i];
    }
    paixu(A,b);
    return 0;
}
#4
rjsp2016-09-28 15:15
回复 3楼 east东
将 cin>>B; 也删除掉
另外,你这个不是排序,只是将最大值移动到尾部
#5
east东2016-09-28 21:45
排序怎么写啊
#6
east东2016-09-30 00:43
回复 4楼 rjsp
#include<iostream>
using namespace std;
void paixu(int *A,int B)//A为一个数组,B为数组中数字个数
{
    for(int i=0;i<B;i++)
    {
        for (int j=i+1;j<B;j++)
        {
            if (A[i]>A[j])
            {
                int t=A[i];
                A[i]=A[j];
                A[j]=t;
            }
        }
        
    }
    for(int i=0;i<B;i++)
    cout<<" "<<A[i];
}
int main()
{
    int b;
    void paixu(int *A,int B);
    cout<<"请输入数组个数";
    cin>>b;
    int A[b];
    for(int i=0;i<b;i++)
    {
        cout<<"请输入数组" ;
        cin>>A[i];
    }
    paixu(A,b);
    return 0;
}
终于写出来了
#7
StadyC2016-10-14 10:42
b没有初始化,其次,可能编译器还不支持变长数组
#8
StadyC2016-10-14 10:43
回复 6楼 east东
函数定义写在开头就没必要在main函数声明了
#9
StadyC2016-10-14 10:44
回复 2楼 书生牛犊
在C99标准以后,引入了变长数组的概念,允许用变量定义数组
1