-4

这可能是一个非常简单的问题,但我需要将 array[0] 和 array[1] 中的两个 int 值复制到一个整数中。

例如,如果 array[0]=1 和 array[1]=6,我需要整数等于“16”。数组的任何元素的范围都是从 0 到 9。

我有什么机会?十分感谢!

4

2 回答 2

2

array[0] 总是代表 10 的位置,而 array[1] 总是代表 1 的位置吗?array[0] 或 array[1] 的值是否会大于 9 或小于 0?会有一个数组[2] 或一个数组[3] 来表示一个 3 位或 4 位数字吗?

如果上述问题的答案是“是”、“否”和“否”,那么答案不就是简单的算术吗?

int result = (array[0] * 10) + array[1];

如果数据没有预先检查范围,那么您需要添加该步骤。即使数据已预先进行范围检查,您仍应考虑添加该步骤以确保更加确定。

在上面的例子中,'10' 也是一个幻数。不硬编码 10 可能是明智的,而是基于数组的大小。考虑存在数组[2] 的情况。. . 数组[n]。然后怎样呢?

于 2012-11-18T22:23:02.993 回答
1

一种简单的方法是将整数转换为字符串,联系比,然后再次转换,这次是从字符串转换为整数。

char s1[30]; // String that will hold the first integer
char s2[15]; // String that will hold the second integer

int intResult;

首先将int转换为字符串:

sprintf(s1, "%d", array[0]);
sprintf(s2, "%d", array[1]);

比将 2 个字符串连接在一起:

s1 = strcat(s1,s2);

然后将字符串结果转换为整数。intResult = atoi(s1);

于 2012-11-18T22:29:34.533 回答