牛客网--整形存储
题目描述
写一个类,能接受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) |