#include <stdio.h>
#include <iostream>
#include <string.h>
#include <algorithm>
using namespace std;
int main()
{
int i=0,t,k=0,j=0,N,m=0,n=0,a,b,A,B,x,y,sum,flag;
int count,max=0,ans;
char v[1005],p[1005];
int num[1005];
while(gets(v))
{
k=j=0;
int len=strlen(v);
v[len] = '5';
for (i=0;i<=len;i++)
{
if (v[i] == '5')
{
if(i>0 && v[i-1] != '5')
{
p[k] = '\0';
num[j++]=atoi(p);
k=0;
}
}
else
p[k++] = v[i];
}
sort(num,num+j);
for (i=0,flag=1;i<j;i++)
{
printf(flag==1?"%d":" %d",num[i]);
flag=0;
}
printf("\n");
}
return 0;
}
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
分析:此题一开始是准备一个一个字符读入,然后遇到5就把前面的字符存入二维数组中,最后对每个数组元素进行分析,0的情况怎么转换成一个0等等很麻烦
后来才知道有atoi这个函数可以直接将字符串转为整数
比如:“123.456” 等于 123 “0001” 等于 1 刚好满足此题
然后再考到 快排
sort无法对二维数组的整个元素排序,需注意!!!!
0051231232050775
0 77 12312320
原文地址:http://blog.csdn.net/xinwen1995/article/details/45970303