Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
按顺序将数组的元素“复制”为“int”?C_C_Arrays_Integer - Fatal编程技术网

按顺序将数组的元素“复制”为“int”?C

按顺序将数组的元素“复制”为“int”?C,c,arrays,integer,C,Arrays,Integer,这可能是一个非常简单的问题,但我需要将数组[0]和数组[1]中的两个int值复制到一个整数中 例如,如果数组[0]=1和数组[1]=6,则需要整数等于16。 数组的任何元素的范围为0到9 我有什么机会? 多谢各位 数组[0]是否始终代表10的位置,数组[1]是否始终代表1的位置?数组[0]或数组[1]的值是否会大于9或小于0?是否会有一个数组[2]或数组[3]来表示3位数字或4位数字 如果以上问题的答案是肯定、否定和否定,那么答案不是简单的算术吗 int result = (array[0] *

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

例如,如果数组[0]=1和数组[1]=6,则需要整数等于16。 数组的任何元素的范围为0到9

我有什么机会?
多谢各位

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

如果以上问题的答案是肯定、否定和否定,那么答案不是简单的算术吗

int result = (array[0] * 10) + array[1];
如果未对数据进行预范围检查,则需要添加该步骤。即使数据是预范围检查的,也应该考虑添加该步骤以使其更加肯定。


在上面的例子中,“10”也是一个神奇的数字。最好不要硬编码10,而是以数组的大小为基础。考虑有一个数组(2)的情况…数组[n]。然后呢?

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

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]);
然后将两个字符串连接在一起:

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

什么是数组[0]是21,数组[1]是416?我说这可能是一个简单的问题:这正是我所需要的。非常感谢你!!一旦网站让我接受答案,我会的。如果你在数组[0]中有21个,而数组[1]是416,你将有626个。它不应该是21416吗?当然,它将取决于指定的输入范围。正如所写的,规范显然是模棱两可的,需要加强。也许,当数组[0]为21时,应该将两者相乘!应该是8736吗?很公平,我刚看完。这提出了一个很好的观点。我在阅读问题时的假设是,数组表示以10为基数的数字。您的假设是,无论长度如何,数字都需要连接。这就是为什么在问问题时,输入一些关于你为什么要做某事的信息是很重要的。如果没有这些额外的信息,您很容易找到一个您认为是答案的解决方案,但却无法有效缓解潜在问题!