Chinaunix首页 | 论坛 | 博客
  • 博客访问: 25063
  • 博文数量: 4
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 45
  • 用 户 组: 普通用户
  • 注册时间: 2016-07-22 19:19
文章分类
文章存档

2019年(1)

2018年(1)

2017年(2)

我的朋友

分类: C/C++

2019-03-17 17:06:19

牛客网--整形存储

题目描述

    写一个类,能接受int 型的变量,接收变量后能存储原变量(譬如12345)和其反向变量(54321),最多处理数量为10 个,当输入达到10 个或者输入变量为0 的时候停止。并且在类销毁前输出存储的所有变量。

输入描述:
    输入若干个整数。
输出描述:
    按类里存储的数个数m输出m行。每行两个数,表示原变量及其反向变量。

示例1
输入
12 3442 0
输出
12 21
3442 2443

代码:
#include
#include
#define INPUT_SIZE  (10)

typedef struct stIntVarStoreStru{
int inVar[INPUT_SIZE];
int inReverse[INPUT_SIZE];
int inCnt;
} stIntVarStore_t;

stIntVarStore_t gstIntVarIn;

int int_reverse(int intVar)
{
int buf[10] = { 0 };
int input = 0;
int output = 0;
int num = 0;
int div = 0;
int rem = 0;


if (intVar == 0)
{
return 0;
}
input = intVar;
for (int i = 0; i < INPUT_SIZE; i++)
{
div = input / 10;
if (div == 0)
{
buf[num] = input;
num++;
break;
}
else {
rem = input % 10;
buf[num] = rem;
num++;
input /= 10;
}
}
for (int j = 0; j < num; j++)
{
for (int k = 0; k < num - 1 - j; k++)
{
buf[j] *= 10;
}
output += buf[j];
}
return output;
}


int main()
{
int tmpIn = 0;
memset(&gstIntVarIn, 0, sizeof(stIntVarStore_t));
for (int i = 0; i < INPUT_SIZE; i++)
{
scanf_s("%d", &tmpIn);
if ((tmpIn == 0) || (i > 10))
{
break;
}
gstIntVarIn.inVar[i] = tmpIn;
gstIntVarIn.inCnt++;
}


for (int j = 0; j < gstIntVarIn.inCnt; j++)
{
gstIntVarIn.inReverse[j] = int_reverse(gstIntVarIn.inVar[j]);
printf("%d  %d\n", gstIntVarIn.inVar[j], gstIntVarIn.inReverse[j]);
}
return 0;
}
阅读(1876) | 评论(0) | 转发(0) |
0

上一篇:嵌入式学习网站推荐

下一篇:没有了

给主人留下些什么吧!~~