题目1190:大整数排序-----如果是二维字符数组可以用结构体和数组的结合;qsort()能AC,sort就WA,------注意cmp函数的编写,此处是减号
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
using namespace std;
struct string
{
int len;
char str[1005];
};
int cmp(const void *str1,const void *str2)
{
struct string *s1=(string*)str1;
struct string *s2=(string*)str2;
if (s1->len==s2->len)
{
int f=strcmp(s1->str,s2->str);
return f;
}
else return s1->len-s2->len;
}
int main()
{
int n;
struct string s[105];
while(scanf("%d",&n)!=EOF)
{
int i;
for(i=0;i<n;i++)
{
scanf("%s",s[i].str);
s[i].len=strlen(s[i].str);
}
qsort(s,n,sizeof(string),cmp);
for(i=0;i<n;i++)
printf("%s\n",s[i].str);
}
return 0;
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步