/*output a successive numeral both sides the character '-' from lift to rightexample :input : 1,4,3-9,3,7-9#1,3d-5# output: 1,4,3,4,5,6,7,8,9,3,7,8,9illegal 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;}

评论