#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