题解 | #大整数排序#
大整数排序
https://www.nowcoder.com/practice/b744af632ac4499aa485d7bb048bb0aa
#include <stdio.h> #include <string.h> int comp(char a[100],char b[100]){ int i=strlen(a),j=strlen(b); if(i>j)return 1; else if(i<j)return -1; else{ for(int t=0;t<i;t++){ if(a[t]>b[t])return 1; else if(a[t]<b[t])return -1; } return 0; } } void sort(char a[][100],int n){ for(int i=0;i<n;i++){ for(int j=0;j<n-i-1;j++){ int temp=comp(a[j], a[j+1]); if(temp>0){ char t[100]; strcpy(t, a[j]); strcpy(a[j], a[j+1]); strcpy(a[j+1], t); } } } } int main() { int n; while(scanf("%d",&n)!=EOF){ char a[n][100]; for(int i=0;i<n;i++){ scanf("%s",a[i]); } sort(a,n); for(int i=0;i<n;i++){ printf("%s\n",a[i]); } } return 0; }