这是一个模拟类似电子表之类的东西,显示数字,你可以输入要显示数字的大小(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;
}