内存:64  时间:1

题目描述

输入一数字字符串,以值递增的形式输出。

以#表示输入结束,输入可以包含多个空格。

要求判断输入的合法性。

输入

123 s 34#

123 23 78  76#

23 01 01 001 54    32  #

输出

输入错误,请重新输入,输入样例:123 34 45# 

23 76 78 123

1 1 1 23 32 54

样例输入

11 1 4 2#

样例输出

1 2 4 11

提示

代码如下


#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
int fcm(const void* a,const void* b)
{
	return (*(int*)a-*(int*)b);
}
int main()
{	
	char a[100];
	char n;
	int i;
	int fcm(const void *,const void *);
int b[100]={0};
		int byt=0;
		int hefa=1;
		int k=0;
		int j=0;
		while((n=getchar())!='#')
		{
			
		if((n>='0'&&n<='9')||n==' '||n=='\n'||n=='-')
		{	
			if(n!='\n')
			{
			if(n!=' '||(k!=0&&a[k-1]!=' '))
			a[k++]=n;
			}
			else printf("\n");
		}
		else 
		{
			hefa=0;
		}
		}
	if(a[k-1]==' ') k--;
	a[k]='\0';
	if(!hefa) 
	{
		printf("输入错误,请重新输入,输入样例:123 34 45# ");   //注意这一行的结果
		printf("\n");
	}
	else 
	{
		k=0;
		for(i=strlen(a)-1;i>=0;i--)
		{	
			if(a[i]!=' '&&a[i]!='-')
			{
			b[k]+=((a[i]-'0')*pow(10,byt));
			byt++;
			}
			else 
			{
			if(a[i]=='-')
				b[k]=-b[k];
			else{
			byt=0;
			k++;
			}
			}
		}
		k++;
		qsort(b,k,sizeof(b[0]),fcm);
		printf("%d",b[0]);
		for(i=1;i<k;i++)
		{
			printf(" %d",b[i]);
		}
		printf("\n");
	}
	return 0;
}

代码来源于互联网,仅供参考!