#include <iostream>
#include <cstring>
#include <cstdlib>
using namespace std;
const int LEN=1000;
const int NUMLEN=10;
struct Ele
{
int n;
char num[NUMLEN];
}ele[LEN];
void deal(int m)
{
int tmp[NUMLEN];
int n=ele[m].n;
int cou=0;
while(n!=0)
{
tmp[cou]=n%10;
n=n/10;
cou++;
}
for(int i=0;i<cou;i++)
ele[m].num[i]=tmp[cou-i-1]+'0';
ele[m].num[cou]=0;
}
int cmpn(const void *a,const void *b)
{
return (*(struct Ele *)a).n-(*(struct Ele *)b).n>0?1:-1;
}
int cmpnum(const void *a,const void *b)
{
return strcmp((*(struct Ele *)a).num,(*(struct Ele *)b).num)>0?1:-1;
}
int main()
{
int n;
cout<<"请输入元素数目:";
cin>>n;
cout<<"请依次输入"<<n<<"个元素并以空格隔开:"<<endl;
for(int i=0;i<n;i++)
{
cin>>ele[i].n;
deal(i);
}
int choice;
cout<<"请输入你的选择:1.按数值大小;2.按字符串大小"<<endl;
cin>>choice;
if(choice==1)
qsort(ele,n,sizeof(struct Ele),cmpn);
else if(choice==2)
qsort(ele,n,sizeof(struct Ele),cmpnum);
cout<<"结果为:"<<endl;
for(int i=0;i<n;i++)
{
cout<<ele[i].n;
//cout<<" "<<ele[i].num<<" ";
if(i!=n-1)
cout<<" ";
}
cout<<endl;
return 0;
}
追问
这一段程序有点不明白,能帮我分析下吗
还有就是error C2374: 'i' : redefinition; multiple initialization我在运行的时候出现了这个错误,是哪里出错了啊
追答你邮箱多少?字数超过限制了,我发你邮箱
追问1 4 4 6082905 @ qq.com