2015-03-31 7 views
-8

Мне нужно поставить 1000-значное число и обработать каждую цифру. Поэтому я хочу разбить число на отдельные цифры и поместить их в каждое из полей массива размером 1000. Как я могу сделать это с помощью программирования на языке C?C Программирование: как вставить число в массив таким образом, чтобы каждая цифра числа попадала в каждое поле массива?

EDIT: Я работаю над вопросом Euler Project 8. Я знаю, что мне нужно сделать: поместить каждую из цифр в массив и использовать скользящее окно, чтобы найти самый большой продукт. Но я не уверен в реализации. Я искал другие ответы, но я боюсь, что все они находятся на любом языке, отличном от C, и кажутся легкими. Я хотел реализовать то же самое в C, чтобы просить форум.

+0

Есть много этих вопросов и ответов уже на SO, это один, например: http://stackoverflow.com/questions/4962341/how-do-i-turn-an-integer-into- a-array-of-digits-without-use-strings –

+0

Каков тип данных вашего 1000-значного числа? – DWright

+1

Вы попробовали 'populate_array_with_digit_splits (array, value);'? Обратите внимание, что вам, возможно, придется написать эту функцию. – mah

ответ

1
#include <stdio.h> 


#define MAX_NUMS 5 // change me to 1000 
int main(int argc, const char * argv[]) 
{ 
    char numberString[ MAX_NUMS + 1 ]; 
    int numberNumeric [ MAX_NUMS ]; 
    printf("Enter number "); 
    scanf("%s",numberString); 
    for (int i=0; i < MAX_NUMS; ++i) 
    { 
     printf("converting %c\n",numberString[i]); 
     numberNumeric[i] = (numberString[i] - 0x30); // convert ascii to integer 
    } 

    // Your array of 1-digit numbers 
    for (int i=0; i < MAX_NUMS; ++i) 
    { 
    printf("%i ",numberNumeric[i]); 
    } 
    return 0; 
}