HDU1106

问题简述:

输入一行数字,将‘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;
	}
}

猜你喜欢

转载自blog.csdn.net/weixin_43983015/article/details/84863249