tzc 1292 排序"/>
tzc 1292 排序
方法一:
#include<iostream>
#include<string>
using namespace std;
const int MAX_NUM=1000;
void merge(long num[],int n);
int main()
{string str;while(cin>>str){int len=str.size();long num[MAX_NUM];int i=0,j,temp;for(j=0;j<MAX_NUM;j++)num[j]=0;for(j=0;j<len;){temp=str[j]-'0';if(temp!=5){num[i]=num[i]*10+temp;j++;}else{if(j)i++;while(str[j]=='5')j++;if(j>len-1)i--;}}merge(num,i+1);cout<<num[0];for(j=1;j<=i;j++)cout<<" "<<num[j];cout<<endl;}return 0;
}
void merge(long num[],int n)
{long temp;int k;for(int i=0;i<n;i++){k=i;temp=num[i];for(int j=i;j<n;j++)if(num[k]>num[j])k=j;if(k!=i){num[i]=num[k];num[k]=temp;}}
}
方法二:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>int cmp(const void* a,const void* b)
{return *(int*)a-*(int*)b;
}int main()
{char a[1010];int s[1010],i;while(scanf("%s",a)!=EOF){i=0;char *p=strtok(a,"5");while(p!=NULL){sscanf(p,"%d",&s[i]);p=strtok(NULL,"5");i++;}qsort(s,i,sizeof(int),cmp);printf("%d",s[0]);for(int j=1;j<i;j++)printf(" %d",s[j]);printf("\n");}return 0;
}
更多推荐
tzc 1292 排序
发布评论