题目:http://acm.pku.edu.cn/JudgeOnline/problem?id=1102
思路:水题。。。水过,注意点:
每个数字之间有一个空格; 每个测试用例之间有一个换行;
#include <stdio.h> #include <string.h> int main() { while(1) { int s,row,col,i,j; char n[10]; scanf("%d%s",&s,n); int len = strlen(n); if(s==0) break; col = 2*s; row = 2*s+3; int k=0; for(j=0;j<row;j++) { for(i=0;i<len;i++) { switch(n[i]) { case '1': if(j==0 || j==s+1 || j==2*(s+1)) for(k=0;k<s+2;k++) printf(" "); else { for(k=0;k<s+1;k++) printf(" "); printf("|" ); } break; case '2': if(j==0 || j==s+1 || j==2*(s+1)) { printf(" "); for(k=0;k<s;k++) printf("-"); printf(" "); } else if(j>0 && j<s+1) { for(k=0;k<s+1;k++) printf(" "); printf("|"); } else if(j>s+1 && j<2*(s+1)) { printf("|"); for(k=0;k<s+1;k++) printf(" "); } break; case '3': if(j==0 || j==s+1 || j==2*(s+1)) { printf(" "); for(k=0;k<s;k++) printf("-"); printf(" "); } else { for(k=0;k<s+1;k++) printf(" "); printf("|"); } break; case '4': if(j==0 || j==2*(s+1)) { for(k=0;k<s+2;k++) printf(" "); } else if(j==s+1) { printf(" "); for(k=0;k<s;k++) printf("-"); printf(" "); } else if(j>0 && j<s+1) { printf("|"); for(k=0;k<s;k++) printf(" "); printf("|"); } else { for(k=0;k<s+1;k++) printf(" "); printf("|"); } break; case '5': if(j==0 || j==s+1 || j==2*(s+1)) { printf(" "); for(k=0;k<s;k++) printf("-"); printf(" "); } else if(j>0 && j<s+1) { printf("|"); for(k=0;k<s+1;k++) printf(" "); } else { for(k=0;k<s+1;k++) printf(" "); printf("|"); } break; case '6': if(j==0 || j==s+1 || j==2*(s+1)) { printf(" "); for(k=0;k<s;k++) printf("-"); printf(" "); } else if(j>0 && j<s+1) { printf("|"); for(k=0;k<s+1;k++) printf(" "); } else if(j>s+1 && j<2*(s+1)) { printf("|"); for(k=0;k<s;k++) printf(" "); printf("|"); } break; case '7': if(j==0) { printf(" "); for(k=0;k<s;k++) printf("-"); printf(" "); } else if(j == s+1 || j==2*(s+1)) { for(k=0;k<s+2;k++) printf(" "); } else { for(k=0;k<s+1;k++) printf(" "); printf("|"); } break; case '8': if(j==0 || j==s+1 || j==2*(s+1)) { printf(" "); for(k=0;k<s;k++) printf("-"); printf(" "); } else { printf("|"); for(k=0;k<s;k++) printf(" "); printf("|"); } break; case '9': if(j==0 || j==s+1 || j==2*(s+1)) { printf(" "); for(k=0;k<s;k++) printf("-"); printf(" "); } else if(j>0 && j<s+1) { printf("|"); for(k=0;k<s;k++) printf(" "); printf("|"); } else { for(k=0;k<s+1;k++) printf(" "); printf("|"); } break; case '0': if(j==0 || j==2*(s+1)) { printf(" "); for(k=0;k<s;k++) printf("-"); printf(" "); } else if(j==s+1) { for(k=0;k<s+2;k++) printf(" "); } else { printf("|"); for(k=0;k<s;k++) printf(" "); printf("|"); } break; } printf(" "); } printf("/n"); } printf("/n"); } return 0; }