如何将一个由6个整数组成的数组转换成单个整数。下面提供了示例。
数组:{0, 1, 2, 3, 4, 5, 6}
整数:123456
谢谢!
试一下:
int i, k = 0;
for (i = 0; i < n; i++)
k = 10 * k + a[i];
其中n
是数组的长度。虽然如此,但当数组足够短时才成立,否则你将会遇到int
溢出。
int a[]={1,3,5,234,1,5,3};
没有提及边界,但可能会成为一个问题 :) - ryykerint array_to_num(int arr[],int n){
char str[6][3];
int i;
char number[13] = {'\n'};
for(i=0;i<n;i++) sprintf(str[i],"%d",arr[i]);
for(i=0;i<n;i++)strcat(number,str[i]);
i = atoi(number);
return i;
}
其中str[6][3]
表示有6
个元素可以容纳2
位数字,根据需要进行更改。此外,n
是您放入函数中的数组的大小。
使用方法如下:
int num[6] = {13,20,6,4,3,55};
int real_num;
real_num = array_to_num(num,6);
real_num
将变为132064355
try this one:
#include <stdio.h>
#include <math.h>
int main()
{
int arr[] = {1, 2, 2, 43, 4, 27};
int size = sizeof(arr)/sizeof(arr[0]);
int n = 0;
int number = 0;
int val = 0;
while(n <size)
{
val = arr[n];
while(val!= 0)
{
val = val/10;
number = number*10;
}
number = number + arr[n];
n++;
}
printf("%d", number);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char ** argv){
int n;
char buff[100];
sprintf(buff,"%d%d%d%d%d%d%d", 0, 1,2, 3, 4, 5, 6);
n = atoi(buff);
printf("the number is %d",n);
}
另一个版本
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char ** argv){
int n;
int i;
char buff[100];
int x[]={0,1,2,3,4,5,6};
for (i=0; i<7; i++) {
sprintf(&buff[i],"%d",x[i]);
}
n = atoi(buff);
printf("the number is %d",n);
}
__int64
)
这将返回由int数组元素组成的整数...
(请注意,这里没有考虑负值等情况)
#include <ansi_c.h>
int ConcatInts(int *a, int numInts);
int main(void)
{
int a;
int m[]={1,2,3,4,5,6,7,8,9};
int size = sizeof(m)/sizeof(m[0]);
a = ConcatInts(m, size); //a = 123456789
return 0;
}
int ConcatInts(int *a, int numInts)
{
int i=0, size;
int b=0;
int mult = 1;
size = sizeof(a)/sizeof(a[0]);
for(i=0;i<numInts;i++)
{
if((a[i] < 0) ||(a[i]>9)) return -1;
if(i==0)
{
b += a[i];
}
else
{
b *= 10;
b += a[i];
}
}
return b;
}
if (i==0)
不必要,因为 b 最初为 0,所以 10*b
也是 0。更重要的是:你不能在数组指针上使用 sizeof
。幸运的是,它只会添加无用代码。 - Jongwareint k = 0;
for (int i = A.length; i > 0; i--){
k += 10 * i * A[A.length - i];
}
123456
。这是有充分理由的,不应该让你感到惊讶。 - Reinstate Monica -- notmaynard数值=数字(n)+10*数字(n-1)+100*数字(n-2)+...+10^n*数字(0)
。 - Eugen Rieck