/*
output a successive numeral both sides the character '-' from lift to right
example :
input :
1,4,3-9,3,7-9#
1,3d-5#
output:
1,4,3,4,5,6,7,8,9,3,7,8,9
illegal
zhaoyg
2008.1.11
*/
#include <stdio.h>
#include <conio.h>
int main()
{
int flage=0,input,input_end,temp;
int in[100][2]={0} , count=-1;
printf("add '#' as a end of input , and a sigle '#' to end\n");
int a=0;
while( (flage=scanf("%d",&input))==1 && input!='#')
{
in[++count][0]=input;
if ((temp=getchar())!=',' && temp!='-')
{
flage=0;
break;
}
if (temp=='-')
{
if(scanf("%d",&input_end)==1)
{
in[count][1]=input_end;
if ((temp=getchar())!=',' && temp!='#')// eat off ',' after intput_end
{
flage=0;
break;
}
if (temp=='#')
break;
}
else
{
flage=0;
break;
}
}
}
if ( flage != EOF && flage==0 )
printf("illegal\n");
else
{
for (int i=0; i<=count ; i++)
{
printf("%d,",in[i][0]);
if ( in[i][1]!=0)
{
for (temp=in[i][0]+1;temp<=in[i][1];temp++)
printf("%d,",temp);
}
}
}
getch();
return 0;
}
评论