这是一个模拟类似电子表之类的东西,显示数字,你可以输入要显示数字的大小(1~10) 和要显示的数字或者数字串(0-9),可以同时输入多行,输入0 0结束输入,回车显示。参数格式 size string。
// homework.cpp : Defines the entry point for the console application. //
#include "stdafx.h" #include "stdio.h" #include "string.h" #include <conio.h> #include <stdlib.h>
void draw(int number,int size,int line); void display(int s, char *n);
int main(int argc, char* argv[]) {
int para1[12];//参数1 char para2[12][12];//参数2 int flag = 1;//接受参数标记 int count = 0;//计数 do { scanf("%d %s",?1[count],para2[count]);
if(para1[count] == 0 && para2[count][0] == '0' && para2[count][1] == NULL) flag = 0; //printf("%d,%s ",para1[count],para2[count]); //getchar(); count++; }while(flag&&count<9);
//scanf(st1,st2,"%s %s"); for (int j = 0;j<count-1; j++) { //printf("%s ",para2[j]); if(para1[j]<=0para1[j]>10)// { printf("the %d number's size is wrong ",j);
//exit(0); } else display(para1[j],para2[j]);
}
//printf("disply "); return 0; }
void display(int s, char *n) { //add your code for display the numbers int i =0; char str[10]; strcpy(str,n); int len = strlen(n); //printf("len "); //char number; for (i; i<2*s+3; i++) { for (int j= 0; j<len;j++) { if(j>=len) j %= len;
switch(*(str+j)) { case '0': draw(0,s,i);printf(" ");break; case '1': draw(1,s,i);printf(" ");break; case '2': draw(2,s,i);printf(" ");break; case '3': draw(3,s,i);printf(" ");break; case '4': draw(4,s,i);printf(" ");break; case '5': draw(5,s,i);printf(" ");break; case '6': draw(6,s,i);printf(" ");break; case '7': draw(7,s,i);printf(" ");break; case '8': draw(8,s,i);printf(" ");break; case '9': draw(9,s,i);printf(" ");break; default:break; } } printf(" ");
} } void draw(int number,int size,int line) { int size1 = size; int line1 = line; int number1 = number; switch(number1) {
case 0: { if(line1 == 0line1 == 2*size1+2)//第一行 { printf(" "); for(int i =0;i<size1;i++) printf(" "); } if(line1 == size1+1)//中间行 { for(int j =0 ;j< size1+2;j++) printf(" "); } if(line1>0&&line1<2*size1+2&&line1!=size1+1) { printf(""); for(int i =0;i<size1;i++) { printf(" "); } printf("");
} } break; case 1: { if(line1 == 0line1 == 2*size1+2)//第一行 { printf(" "); for(int i =0;i<size1;i++) { printf(" "); } printf(" "); }; if(line1 == size1+1)//中间行 { for(int j =0 ;j< size1+2;j++) printf(" "); } if(line1>0&&line1<2*size1+2&&line1!=size1+1) { //printf(""); for(int i =0;i<size1+1;i++) { printf(" "); } printf("");
} } break; case 2: { if(line1 == 0line1 == 2*size1+2line1 == size1+1)//第一行 { printf(" "); for(int i =0;i<size1;i++) printf(" "); }; if(line1>0&&line1<size1+1) { //printf(""); for(int i =0;i<size1+1;i++) { printf(" "); } printf("");
} if(line1<2*size1+2&&line1>size1+1) { printf(""); for(int i =0;i<size1;i++) { printf(" "); } printf(" "); } } break; case 3: { if(line1 == 0line1 == 2*size1+2line1 == size1+1)//第一行 { printf(" "); for(int i =0;i<size1;i++) printf(" "); } else { printf(" "); for(int i =0;i<size1;i++) { printf(" "); } printf("");
} } break; case 4: { if(line1 == 0line1 == 2*size1+2)//第一行 { printf(" "); for(int i =0;i<size1;i++) { printf(" "); } printf(" "); } if(line1 == size1+1) { printf(" "); for(int i =0;i<size1;i++) printf(" ");
} if(line1<2*size1+2&&line1>size1+1) { printf(" "); for(int i =0;i<size1;i++) { printf(" "); } printf(""); } if(line1>0&&line1<size1+1) { printf(""); for(int i =0;i<size1;i++) { printf(" "); } printf(""); } } break; case 5: { if(line1 == 0line1 == 2*size1+2line1 == size1+1)//第一行 { printf(" "); for(int i =0;i<size1;i++) printf(" "); } if(line1>0&&line1<size1+1) { printf(""); for(int i =0;i<size1;i++) { printf(" "); } printf(" ");
} if(line1<2*size1+2&&line1>size1+1) { printf(" "); for(int i =0;i<size1;i++) { printf(" "); } printf(""); } } break; case 6: { if(line1 == 0line1 == 2*size1+2line1 == size1+1)//第一行 { printf(" "); for(int i =0;i<size1;i++) printf(" "); } if(line1>0&&line1<size1+1) { printf(""); for(int i =0;i<size1;i++) { printf(" "); } printf(" ");
} if(line1<2*size1+2&&line1>size1+1) { printf(""); for(int i =0;i<size1;i++) { printf(" "); } printf(""); } } break; case 7: { if(line1 == 0)//第一行 { printf(" "); for(int i =0;i<size1;i++) printf(" "); } else if(line1 == 2*size1+2line1 == size1+1)//中间行和末尾行 { printf(" "); for(int i =0;i<size1;i++) { printf(" "); } printf(" "); } else { printf(" "); for(int i =0;i<size1;i++) { printf(" "); } printf("");
}
} break; case 8: { if(line1 == 0line1 == 2*size1+2line1 == size1+1)//首行中间行和末尾行 { printf(" "); for(int i =0;i<size1;i++) printf(" "); } else { printf(""); for(int i =0;i<size1;i++) { printf(" "); } printf("");
} } break; case 9:{ if(line1 == 0line1 == 2*size1+2line1 == size1+1)//首行中间行和末尾行 { printf(" "); for(int i =0;i<size1;i++) printf(" "); } if(line1>0&&line1<size1+1) { printf(""); for(int i =0;i<size1;i++) { printf(" "); } printf("");
} if(line1<2*size1+2&&line1>size1+1) { printf(" "); for(int i =0;i<size1;i++) { printf(" "); } printf(""); } } break; default:; } return; }
|