c语言数字字符和数字的运算,OJ题目-使用+-|等符号表示数字,进行运算【C语言】...

ecf2decb8dff10124e461c10e6381cbe.png

00421fb1d6d5edebc05c6f8e48c7f265.png

如上,输入两个数字,最后会输出这两个数字的和

代码如下:

#include

#include

using namespace std;

#define space -2

#define error -1

int a, b; //加数与被加数

int c;

char tmp[5][3];//装一个数字模型的数组

char Nums[10][5][3]; //建立模型

char InputNums[5][100];

char OutputNums[5][100];

int out_p = 0;

void write(int i);

int getNum(char tmp[5][3]);

void InitNums();

int main()

{

InitNums();

//输入数字

int i=0;

int j=0;

// //初始化OutputNums

// for(i=0;i<5;i++)

// {

// for(j=0; j<100;j++)

// {

// OutputNums[i][j] = ' ';

// }

// }

/*输入符号*/

for(i=0; i<5; i++)

{

gets(InputNums[j++]);

fflush(stdin);

}

/*获得加数*/

int flag = 0;

bool x = true;

i=0;

int m,n;//获得tmp使用

int tmps;//临时变量

while(x)

{

if(InputNums[0][i] == '+' || InputNums[0][i+1] == '-' || InputNums[0][i+2] == '+')

{

/*存入一个tmp*/

for(m=0;m<5;m++)

{

for(n=0; n<3;n++)

{

tmp[m][n] = InputNums[m][n+i];

}

}

tmps = getNum(tmp);

if(a == 0)

a = tmps;

else{a = a*10+tmps;}

i+=4;

}

else

{

i+=4;

flag++;

if(flag == 2)

break;

b =a;

a =0;

}

}

// printf("%d %d %d\n", a+b, a , b);

/*求出结果*/

int rs = a+b;

int rs_s = 0;

// rs_s = rs%10;

// rs = rs/10;

while(rs != 0)

{

rs_s = rs%10;

rs = rs/10;

write(rs_s);

}

/*把结果用符号表示出来*/

int fuck;

for(i=0; i<5; i++)

{

flag=1;

for(j=out_p-1; j>=0; j-=4)

{

for(fuck=j-4; fuck

{if(flag != 1)

printf("%c", OutputNums[i][fuck]);

else

flag++;

}

}

printf("\n");

}

}

int getNum(char tmp[5][3])

{

int i=0;

int j,k;

int flag; //标志

for(i=0; i<10;i++)

{

flag=1;

if(tmp[0][2] == ' ')

return space;

for(j=0;j<5;j++)

{

for(k=0; k<3; k++)

{

if(tmp[j][k] != Nums[i][j][k])

{

flag = 0;

break;

}

}

if(flag == 0)

break;

}

if(flag==1)

return i;

}

return error;

}

void InitNums()

{

//初始化0

Nums[0][0][0] = '+';

Nums[0][0][1] = '-';

Nums[0][0][2] = '+';

Nums[0][1][0] = '|';

Nums[0][1][1] = ' ';

Nums[0][1][2] = '|';

Nums[0][2][0] = '+';

Nums[0][2][1] = ' ';

Nums[0][2][2] = '+';

Nums[0][3][0] = '|';

Nums[0][3][1] = ' ';

Nums[0][3][2] = '|';

Nums[0][4][0] = '+';

Nums[0][4][1] = '-';

Nums[0][4][2] = '+';

//初始化1

Nums[1][0][0] = ' ';

Nums[1][0][1] = ' ';

Nums[1][0][2] = '+';

Nums[1][1][0] = ' ';

Nums[1][1][1] = ' ';

Nums[1][1][2] = '|';

Nums[1][2][0] = ' ';

Nums[1][2][1] = ' ';

Nums[1][2][2] = '+';

Nums[1][3][0] = ' ';

Nums[1][3][1] = ' ';

Nums[1][3][2] = '|';

Nums[1][4][0] = ' ';

Nums[1][4][1] = ' ';

Nums[1][4][2] = '+';

//初始化2

Nums[2][0][0] = '+';

Nums[2][0][1] = '-';

Nums[2][0][2] = '+';

Nums[2][1][0] = ' ';

Nums[2][1][1] = ' ';

Nums[2][1][2] = '|';

Nums[2][2][0] = '+';

Nums[2][2][1] = '-';

Nums[2][2][2] = '+';

Nums[2][3][0] = '|';

Nums[2][3][1] = ' ';

Nums[2][3][2] = ' ';

Nums[2][4][0] = '+';

Nums[2][4][1] = '-';

Nums[2][4][2] = '+';

//初始化3

Nums[3][0][0] = '+';

Nums[3][0][1] = '-';

Nums[3][0][2] = '+';

Nums[3][1][0] = ' ';

Nums[3][1][1] = ' ';

Nums[3][1][2] = '|';

Nums[3][2][0] = '+';

Nums[3][2][1] = '-';

Nums[3][2][2] = '+';

Nums[3][3][0] = ' ';

Nums[3][3][1] = ' ';

Nums[3][3][2] = '|';

Nums[3][4][0] = '+';

Nums[3][4][1] = '-';

Nums[3][4][2] = '+';

//初始化4

Nums[4][0][0] = '+';

Nums[4][0][1] = ' ';

Nums[4][0][2] = '+';

Nums[4][1][0] = '|';

Nums[4][1][1] = ' ';

Nums[4][1][2] = '|';

Nums[4][2][0] = '+';

Nums[4][2][1] = '-';

Nums[4][2][2] = '+';

Nums[4][3][0] = ' ';

Nums[4][3][1] = ' ';

Nums[4][3][2] = '|';

Nums[4][4][0] = ' ';

Nums[4][4][1] = ' ';

Nums[4][4][2] = '+';

//初始化5

Nums[5][0][0] = '+';

Nums[5][0][1] = '-';

Nums[5][0][2] = '+';

Nums[5][1][0] = '|';

Nums[5][1][1] = ' ';

Nums[5][1][2] = ' ';

Nums[5][2][0] = '+';

Nums[5][2][1] = '-';

Nums[5][2][2] = '+';

Nums[5][3][0] = ' ';

Nums[5][3][1] = ' ';

Nums[5][3][2] = '|';

Nums[5][4][0] = '+';

Nums[5][4][1] = '-';

Nums[5][4][2] = '+';

//初始化6

Nums[6][0][0] = '+';

Nums[6][0][1] = '-';

Nums[6][0][2] = '+';

Nums[6][1][0] = '|';

Nums[6][1][1] = ' ';

Nums[6][1][2] = ' ';

Nums[6][2][0] = '+';

Nums[6][2][1] = '-';

Nums[6][2][2] = '+';

Nums[6][3][0] = '|';

Nums[6][3][1] = ' ';

Nums[6][3][2] = '|';

Nums[6][4][0] = '+';

Nums[6][4][1] = '-';

Nums[6][4][2] = '+';

//初始化7

Nums[7][0][0] = '+';

Nums[7][0][1] = '-';

Nums[7][0][2] = '+';

Nums[7][1][0] = ' ';

Nums[7][1][1] = ' ';

Nums[7][1][2] = '|';

Nums[7][2][0] = ' ';

Nums[7][2][1] = ' ';

Nums[7][2][2] = '+';

Nums[7][3][0] = ' ';

Nums[7][3][1] = ' ';

Nums[7][3][2] = '|';

Nums[7][4][0] = ' ';

Nums[7][4][1] = ' ';

Nums[7][4][2] = '+';

//初始化8

Nums[8][0][0] = '+';

Nums[8][0][1] = '-';

Nums[8][0][2] = '+';

Nums[8][1][0] = '|';

Nums[8][1][1] = ' ';

Nums[8][1][2] = '|';

Nums[8][2][0] = '+';

Nums[8][2][1] = '-';

Nums[8][2][2] = '+';

Nums[8][3][0] = '|';

Nums[8][3][1] = ' ';

Nums[8][3][2] = '|';

Nums[8][4][0] = '+';

Nums[8][4][1] = '-';

Nums[8][4][2] = '+';

//初始化9

Nums[9][0][0] = '+';

Nums[9][0][1] = '-';

Nums[9][0][2] = '+';

Nums[9][1][0] = '|';

Nums[9][1][1] = ' ';

Nums[9][1][2] = '|';

Nums[9][2][0] = '+';

Nums[9][2][1] = '-';

Nums[9][2][2] = '+';

Nums[9][3][0] = ' ';

Nums[9][3][1] = ' ';

Nums[9][3][2] = '|';

Nums[9][4][0] = '+';

Nums[9][4][1] = '-';

Nums[9][4][2] = '+';

}

void write(int i)

{

int j,k;

for(j=0; j<5; j++)

{

for(k=0; k<3; k++)

{

OutputNums[j][k+out_p] = Nums[i][j][k];

}

}

out_p+=4;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值