问题简述:
输入一行数字,将‘5’作为空格分隔出若干个非负整数,并将这些非负整数有小到大排序后以空格隔开输出。
问题分析:
将数字以字符串形式输入字符数组中,将输入的字符转化为整数形式,并将转化后的整数存入整型数组,遇到‘5’时采取跳过操作。
程序说明:
设置一个循环,分别将每两个‘5’间的字符串利用ASCLL码值计算转化为整数形式,存入整型数组。最后输出整型数组中的各个数值即可。需要注意的是最后一个数后不需要输出空格。
AC通过的程序如下:
#include<iostream>
#include<stdio.h>
#include<cstring>
#include<algorithm>
using namespace std;
char str[1500];
int a[1500];
int main()
{
while(cin>>str)
{
int j=0,i=0,num;
int len=strlen(str);
while(i<len)
{
num=0;
char p=str[i];
for(;i<len;i++)
{
if(str[i]=='5')
{
i++;
break;
}
if(str[i]>='0'&&str[i]<='9')
num=num*10+str[i]-'0';
}
if(p!='5')
a[j++]=num;
}
if(j>0)
{
sort(a,a+j);
for(int i=0;i<j-1;i++)
{
cout<<a[i]<<" ";
}
}
cout<<a[j-1]<<endl;
}
}