如何使用令牌合并## operator ???合并数组元素

时间:2017-04-14 12:21:22

标签: c

我想合并3,7,1以获得371.我想知道如何合并它???

#include <stdio.h>
int main(void) 
{
int a[] ={3, 7, 1};
return(0);
} 

2 个答案:

答案 0 :(得分:0)

我认为不是“合并”,而是希望将数组转换为整数值,就像我们在Java变体中看到的连接操作一样。您可以通过迭代数组轻松实现此目的:

#include <stdio.h>

int joinArray(int a[], int N) {
  int i, res = 0;
  for(i = 0; i < N; i++) 
    res = res*10 + a[i];
  return res; 
}

int main() {
  int a[] = {3, 7, 1};
  printf("merged res : %d\n", joinArray(a, 3));
  return 0;
}

答案 1 :(得分:-1)

你可以试试这样的事情;

#include <stdio.h>
int main(void) 
{
    int a[] ={3, 7, 1};
    int i, result = 0;

    for(i=0;i<sizeof(a)/sizeof(a[0]);i++)
        result += a[i] * pow(10, sizeof(a)/sizeof(a[0])-i-1);

    printf("result %d\n", result);
    return(0);
}