C++ 选择排序法 排序n个数顺序 n由用户输入决定数组大小 急求啊

如题所述

搞笑 为什么C++数组不能动态定义
把studyua的那个稍微改了下 现在n可以由用户输入了 选择排序

#include <iostream.h>
int N;
void main(void)
{ int *a,i;
cout<<"Enter N:"<<endl;
cin>>N;
a=new int[N];
void sort(int array[],int n);
cout<<"Enter the array:"<<endl;
for (i=0;i<N;i++)
cin>>a[i];
sort(a,N);
cout<<"The sorted array:"<<endl;
for (i=0;i<N;i++)
cout<<a[i]<<'\t';
cout<<endl;
delete []a;
}
void sort(int array[ ],int n)
{ int i,j,k,t;
for (i=0;i<n-1;i++)
{ k=i;
for (j=i+1;j<n;j++)
if (array[j]<array[k])
k=j;
t=array[k];array[k]=array[i];array[i]=t;
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-06-25
你给的题有问题啊,c++里规定数组不能动态定义的,所以不可能由用户输入决定数组大小的。

给你个参考的程序:
#include <iostream.h>
#define N 10
void main(void)
{ int a[N],i;
void sort(int array[],int n);
cout<<"Enter the array:"<<endl;
for (i=0;i<N;i++)
cin>>a[i];
sort(a,N);
cout<<"The sorted array:"<<endl;
for (i=0;i<N;i++)
cout<<a[i]<<'\t';
cout<<endl;
}
void sort(int array[ ],int n)
{ int i,j,k,t;
for (i=0;i<n-1;i++)
{ k=i;
for (j=i+1;j<n;j++)
if (array[j]<array[k])
k=j;
t=array[k];array[k]=array[i];array[i]=t;
}
}
相似回答