![]() |
#2
Wikyo_hoho2012-04-14 20:05
|

//用数组给数字排序
//#define num 5
#include<iostream>
using namespace std;
void main()
{
int i,j,k,l,num,*p;
//int a[num];
cout<<"请输入您要排序的数字个数:\n";
cin>>num;
p=new int [num];//动态内存分配
int a[num];
cout<<"请输入您要排序的数字:\n";
for(i=0;i<num;i++)
{cin>>a[i];}
for(l=0;l<num-1;l++)
{
for(j=0;j<num-1-l;j++)
if(a[j]>a[j+1])
{ k=a[j];
a[j]=a[j+1];
a[j+1]=k;
}
}
cout<<"由小到大整理排序后的顺序为:\n";
for(l=0;l<num;l++)
{
cout<<a[l]<<",";
}
cout<<"\n";
system("pause");
}
之前用的不是动态数组是可以给数组里面的元素排序的。//#define num 5
#include<iostream>
using namespace std;
void main()
{
int i,j,k,l,num,*p;
//int a[num];
cout<<"请输入您要排序的数字个数:\n";
cin>>num;
p=new int [num];//动态内存分配
int a[num];
cout<<"请输入您要排序的数字:\n";
for(i=0;i<num;i++)
{cin>>a[i];}
for(l=0;l<num-1;l++)
{
for(j=0;j<num-1-l;j++)
if(a[j]>a[j+1])
{ k=a[j];
a[j]=a[j+1];
a[j+1]=k;
}
}
cout<<"由小到大整理排序后的顺序为:\n";
for(l=0;l<num;l++)
{
cout<<a[l]<<",";
}
cout<<"\n";
system("pause");
}
不过我觉得事先定死元素个数,程序就很局限了。(注释掉的语句就是之前非动态数组用的)
所以就想用动态数组重写一个,不过问题来了,之前没用动态的数组a,现在用了“p=new int [num];//动态内存分配”之后就不认了。
因为没有定义a[],那么我之后的for 语句中的a[]又要怎么修改?
或者各位大侠有更好的方法。。。
求大侠不吝赐教,只要思路相同,整个程序都改完也可以。