Страницы

Поиск по вопросам

четверг, 26 декабря 2019 г.

Длинная арифметика и функция getchar()

#c


При вводе больших значений я решил использовать функцию getchar(). Программа не выдаёт
никаких результатов. Правильно ли я использую функцию getchar() Если правильно, то
в чём проблема?
Программа выглядит вот так.
#include 
#include 
#include 

int main() {

    int a[100], b[100], c[100], i = 0, j, m = 0;
    int n = 0, d = 0;

    while((n = getchar()) != EOF) {
        a[i] = n;
        i++;
    }

    while((d = getchar()) != EOF) {
        b[m] = d;
        m++;
    }

    for(j = 0; j < i; j++) {
        c[j] = a[j] + b[j];
    }

    for(j = 0; j < i - 1; j++) {
        printf("%d", c[j]);
    }

    printf("%d\n", c[j - 1]);
    getch();
    return 0;

}
    


Ответы

Ответ 1



getchar() - не совсем подходящая функция. Она запрашивает только 1 символ и дальше требует ввода Enter. Надеяться на то, что она будет брать последующие цифры из буфера тоже не стоит. Запросить длинное число лучше сначала в виде строки, а потом сделать преобразования, пример: int count; // для длины строки int i; // щечики int longNumber[100]; // длинное число char tmp[100]; // буфер для длинного числа gets (tmp); // запрашиваем длинное число count = strlen(tmp); // определяем длину введенного числа // перенос в массив longNumber(int) for (i=0; i

Комментариев нет:

Отправить комментарий