将一个int数组转换为单个int

Convert an int array to a single int

本文关键字:int 数组 转换 单个 一个      更新时间:2023-10-16

我正在尝试将array[]={1,2,3}转换为int数=123;我该怎么做?

我的代码是:

int main()
{
int array[]={1,2,3};
int number;
for (int i =0; 3<i ; i++){
int val=1;
for(int j=0; j<i; j++ ){
val*=10;
}
number += array[i] *val;
}
cout<<number;
while(1);
return 0;
}

您在错误的"方向"上添加数字。为了保持数字的顺序,您需要将number变量乘以10,然后将array[i]相加,而不是将array[i]乘以number

在使用number之前,还需要将其初始化为零,因为变量在明确给定值之前都有一个随机值。

您还需要执行i < 3("当i小于三时循环")而不是3 < i("当3小于i时循环",这从来都不是真的)。

int array[] = {1,2,3};
int number = 0;
for (int i = 0; i < 3; i++) {
number *= 10;
number += array[i];
}
cout << number;

让我们来看看发生了什么。

  • 一开始,number等于零
  • 我们进入循环。首先,i等于0。
    • 我们将number乘以10。对于第一次迭代,number在那之后仍然为零
    • 我们把array[0](1)加到number上。CCD_ 16现在是1
  • CCD_ 17现在递增并且等于1。1小于3,所以我们再次进入循环体。
    • 我们将number再次乘以10,为下一个数字腾出空间。CCD_ 19现在等于10
    • 我们将array[1](2)添加到numberNumber现在是12
  • CCD_ 23递增并且等于2。2小于3,所以我们重复。
    • 我们将number乘以10,再次为下一个数字腾出空间。现在是120
    • 我们将array[2](3)添加到number,使其成为123,这是所需的结果
  • CCD_ 27递增并变为3。3显然不小于3,所以我们退出循环
  • 我们将number(123)打印到控制台

我会使用流来完成这项工作,因为您的情况实际上是关于词汇解释的。

int number;
std::array<int, 3> arr { 1,2,3 };
std::stringstream ss;
for(int i : arr) ss << i;
ss >> number;
std::cout << number;

当然,如果你不需要号码本身,你可以使用std::cout

std::array<int, 3> arr { 1,2,3 };
for(int i : arr) std::cout << i;
#include <iostream>
#include <cmath>
int main()
{
int numarray[] = {1,2,3};
int num = 0;
for(int i = 2; i>=0; i--)
{
num += numarray[2-i]*pow(10,i);
}
std::cout << num;
return 0;
}

对于不同大小的数组,将2替换为数字数组的最大大小(m)减去1。

看起来您的第一个for循环搞砸了。试试这个:

for (int i =0; i<3 ; i++){
int val=1;
for(int j=0; j<(3-i); j++ ){
val*=10;
}
number += array[i] *val;
}