10

6 つの整数の配列を単一の整数に変換するにはどうすればよいですか。私がやりたいことの例を以下に示します。

配列:{0, 1, 2, 3, 4, 5, 6}

整数: 123456

ありがとうございました!

4

9 に答える 9

17

これを試して:

int i, k = 0;
for (i = 0; i < n; i++)
    k = 10 * k + a[i];

ここnで、配列の長さです。ただし、これは、配列が十分に短い場合に当てはまります。そうしないと、intオーバーフローが発生します。

于 2013-10-25T21:05:37.210 に答える
1

ここに私が作った関数があります

int 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;
} 

whereは、数字を保持できる要素があることをstr[6][3]意味します。必要に応じて変更してください。また、関数に入れる配列のサイズです。次のように使用します。62n

int num[6] = {13,20,6,4,3,55};
int real_num;
real_num = array_to_num(num,6);

real_num今は132064355

于 2015-09-23T05:38:59.960 に答える
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);

}
于 2013-10-25T21:16:44.820 に答える