输入一行数字,如果我们把这行数字中的’5’都看成空格,那么就得到一行用空格分隔的若干非负整数
#include<stdio.h>
#include<string.h>
int a[120]; //记录分离的数据;
char b[1000];//记录总数据;
void fun1();
void fun2();
void fun1(int *p,int m)
{
int i,j,k;
for(i=0;i<m;i++)
{
for(j=0;j<m;j++)
{
if(a[i]<a[j])
{
k=a[i];
a[i]=a[j];
a[j]=k;
}
}
}
for(i=0;i<m;i++)
{
printf("%d",a[i]);
if(i!=m-1)
printf(" ");
}
printf("\n");
}
//split ()//分离函数;
void fun2(char *b)
{
unsigned int i,j=0;
int sum=0;
for(i=0;i<strlen(b);i++)
{
if(b[i]!='5')
{
sum=sum*10+(b[i]-'0');
}
else
{
if(b[i-1]!='5' && i!=0)
{
a[j]=sum;
j++;
sum=0;
}
}
}
if(b[i-1]=='5')
fun1(a,j);
else
{
a[j]=sum;
fun1(a,j+1);
}
}
int main()
{
while(gets(b)!=NULL)
{
fun2(b);
memset(a,0,sizeof(a));
}
return 0;
}
本文介绍了一种将输入数字字符串中所有'5'字符视为分隔符,从而将字符串分割成多个非负整数的方法,并实现了一个排序算法来对这些整数进行升序排列。通过两个主要函数`fun2()`和`fun1()`实现了这一功能。
3924

被折叠的 条评论
为什么被折叠?



