2016-10-09 8 views

ответ

0

Возможно, вы не хотите загружать все эти 200 цифр в память. Когда все, что вы хотите рассчитать, - это сумма цифр, тогда все, что вам нужно во время вашей программы, - это какая-то переменная аккумулятора, хранящая сумму цифр до сих пор. Тип этой переменной может быть int, потому что 200 * 9 <= INT_MAX всегда будет верно в соответствии реализаций С.

#include <stdio.h> 

int main(void) { 
    int accumulator = 0; 
    int read_result; 

    printf("Enter a number:-"); 

    while (1) { 
     read_result = fgetc(stdin); 

     if ('0' <= read_result && read_result <= '9') { 
      accumulator += read_result - '0'; 
     } else { 
      break; 
     } 
    } 

    printf("The sum of the digits is %d", accumulator); 

    return 0; 
} 
+0

Большое спасибо за ваше объяснение ... :) –

0

Максимальный тип в ANSI C C99 длинный длинный int для ints. Невозможно напрямую работать с 200 цифрами в C, если вы не рассматриваете его как char * и не работаете над ним.

Извините, но базовый фрагмент кода, который вы показываете &, цель, которую вы хотите достичь, действительно очень далека от другого ... Если вы немного уточните, какой расчет вы хотите, возможно, можете дать вам рука примерно.

+0

Ah..really ..? На самом деле я хочу получить сумму цифр большого числа. Есть ли простой способ ее получить? –

+0

Конечно: как сказано, вы можете, например, scanf («% d», & a) и суммировать его до тех пор, пока не достигнет EOF, иначе каким-либо образом будут отобраны все числа в указателе на память, а затем начнется их суммирование. – DvTr

+3

@GayanthaAkalanka «Я хочу получить сумму цифр большого числа» - эта * очень важная деталь принадлежит вашему вопросу; не похоронили в комментарии здесь. если это цель * только * (сумма цифр), вам не нужна большая библиотека чисел. Все, что вам нужно сделать, это прочитать символы по одному, и пока они являются символами цифр, переведите их в 'int' из' 0..9' и привяжите их к текущему суммированию. Обновите свой вопрос * и * его название. – WhozCraig

0

Есть ограничения. Некоторые компиляторы имеют только целое число с 64-битным, некоторые с 128-битным. Поэтому вы не можете использовать эти целые типы.

Вы можете использовать GMP library. GMP поддерживает в 64-битных строках целые числа с 2^37 bits.