2016A

发布时间 2023-07-03 11:08:21作者: ben犇
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <algorithm>

#define INTSIZE 100
#define INCREMENT 5

using namespace std;

int my_atoi(char* s){
	int num,i;
	char ch;
	num=0;
	for(int i=0;i<strlen(s);i++){
		ch=s[i];
		if(ch<'0' || ch>'9')
			break;
		num = num*10+(ch-'0');
	}
	return num;
} 

int main(){
	char *s,*p,*q,*r;
	s=(char*)malloc(INTSIZE*sizeof(char));
	int* num;
	int i=0,j=0,m=0,n=0,length=0;
	
	while(1){
		if(i>=INTSIZE){
			s=(char*)realloc(s,(INTSIZE+INCREMENT)*sizeof(char));
		}
		s[i]=getchar();
		if(s[i]=='\n'){
			s[i]='\0';	//修改为字符串结束
			break; 
		}
		i++;
	}
	length=strlen(s);
	num=(int*)malloc(length*sizeof(int));
	i=0;
	p=s;
	while(i<length){
		if(s[i]<-32768||s[i]>32767){
			printf("illegal data");
			system("pause");
			return 0; 
		}
		
		if(s[i]==','){
			i++;
			p++;
		}
		if(s[i]!=','){
			q=(char*)malloc(INTSIZE*sizeof(char));
			q=p;
			r=q;
			while(s[i]!=','&&s[i]!='\0'){
				i++;
				p++;
				q++;
			}
			q='\0';
			++j;
			num[j]=my_atoi(r);
		}
	}
	
	sort(num,num+j-1);
	
	if(j>1){
		for(int k=1;k<=j;k++){
			printf("%d\t",num[k]);
			if(k%4==0)	printf("\n");
		}
	}
	return 0;
}