将一个int数组转换为单个int
Convert an int array to a single int
我正在尝试将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)添加到number
。Number
现在是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;
}
相关文章:
- 按字符值访问int数组
- 将 int 数组转换为 std::vector<int*>
- C++,在int数组中输入字符串或字符会输出0,而不是ascii或error
- 整数区间(或 int 数组)中每个数字的出现次数
- Int 数组到C++容器
- C++ 未初始化的本地(非全局)int 数组中的元素类型到底是什么?
- 如何检测将文本文件读入 int 数组的新行
- C++快速将 int 数组内容转储到文本文件中
- <string> 如何在使用 SWIG 时将 int 数组和 List 作为参数传递给 C# C++
- 如何制作不允许重复值的 C++ int 数组循环?
- 如何将逗号分隔的文件读取为 2D int 数组?
- int 数组,但索引是字符?
- 使用可变参数函数将整数和/或整数数组放入单个 int 数组中
- 将 int 数组转换为带有小数C++的双精度数组
- 将双精度值分配给 int 数组时的类型转换
- 已编辑 我如何将其拆分为 char 和 int 数组
- 从 C++ 中的 int ** 数组访问元素
- C++程序无法分配 int 数组?
- 我正在编写一个代码来将 int 数组存储在文件中,然后用 c++ 检索它,但是检索第一项是假值,我该如何解决这个问题?
- 如何通过头文件中的函数初始化 const int 数组?