只做了4题水题ADGI
A题需要注意的就是“[...]”的输出了,何时输出,何时不输出。
1 #include <stdio.h> 2 int main() 3 { 4 int n, cur, d; 5 int cnt = 1; 6 while(scanf("%d%d%d",&n,&cur,&d)!=EOF) 7 { 8 printf("Case #%d: ",cnt++); 9 if(cur==1) 10 printf("[<<]"); 11 else 12 printf("(<<)"); 13 int start = cur - d; 14 int end = cur + d; 15 if(start >0 && start!=1 && cur!=1)//说明前面有隐藏页,需要输出[...] 16 printf("[...]"); 17 for(int i=start; i<=end && i<=n; ++i) 18 { 19 if(i <=0 ) 20 continue; 21 else 22 { 23 if(i == cur) 24 printf("[%d]",i); 25 else 26 printf("(%d)",i); 27 } 28 } 29 if(end<n && cur!=n)//说明后面有隐藏页,需要输出[...] 30 printf("[...]"); 31 if(cur==n) 32 printf("[>>]"); 33 else 34 printf("(>>)"); 35 printf("\n"); 36 37 } 38 }