| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
为什么1002报错??Runtime Error
http://poj.org/problem?id=1002
/*
* File: main.c
* Author: yunyun
*
* Created on 2013年6月14日, 下午11:36
*/
#include <stdio.h>
# include<string.h>
int paixu(char num)
{
int a =0;
switch(num)
{
case '0':
return 0;
case '1':
return 1;
case 'A':
case 'B':
case 'C':
case '2':
return 2;
case 'D':
case 'E':
case 'F':
case '3':
return 3;
case 'G':
case 'H':
case 'I':
case '4':
return 4;
case 'J':
case 'K':
case 'L':
case '5':
return 5;
case 'M':
case 'N':
case 'O':
case '6':
return 6;
case 'P':
case 'R':
case 'S':
case '7':
return 7;
case 'T':
case 'U':
case 'V':
case '8':
return 8;
case 'W':
case 'X':
case 'Y':
case '9':
return 9;
case '-':
return -1;
default :
return -1;
}
}
int check_do(char * num)
{
int num_long = strlen(num);
int end=0;
int i=0,k=0,j=1;
for(i=num_long;i>=0;i--)
{
k=paixu(num[i]);
if(k!=-1)
{
end=end+k*j;
j=j*10;
}
}
//判断是否
if(end>9999999 || end <1000000)
return -1;
return end;
}
/*
*
*/
int main(int argc, char** argv) {
int num [1000] ={0};
int num_num[1000] ={0};
char char_num[100];
int num1 =0,i=0,j=0,k=0;
while(scanf("%s",char_num)!=EOF)
{
num1 =check_do(char_num);
if(num1 != -1)
{
if(i==0)
{
num[i]=num1;
num_num[i]=1;
i++;
}
else
{
k=0;
//看看有没有记录
for(j=0;j<i;j++)
{
if(num[j] == num1)
{
k=1;//标识读了
num_num[j]++;
}
}
//
if(k==0)
{
num[i]=num1;
num_num[i]=1;
i++;
}
}
}
}
int end_num[1000]={0};
int long_nu =0;
for(i=0;i<1000;i++)
{
if(num[i]==0)
{
break;
}
if(num_num[i]<=1)
{
}
else
{
end_num[long_nu]=num[i];
end_num[long_nu+1] = num_num[i];
long_nu=long_nu+2;
}
}
if(long_nu==0)
{
printf("No duplicates.");
}
else
{
//paixu
int key=0,info=0;
for(i=0;i<long_nu;i=i+2)
{
key=i;
for(j=i;j<long_nu;j=j+2)
{
if(end_num[key]>end_num[j])
{
key=j;
}
}
info=end_num[i];
end_num[i]=end_num[key];
end_num[key]=info;
info=end_num[i+1];
end_num[i+1]=end_num[key+1];
end_num[key+1]=info;
}
for(i=0;i<long_nu;i=i+2)
{
printf("%d-%d %d\n",end_num[i]/10000,end_num[i]%10000,end_num[i+1]);
}
}
return (0);
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator