Как я могу остановить эту программу, предоставив некоторые данные? - PullRequest
0 голосов
/ 05 апреля 2020

Я пытался отфильтровать целые числа из входных данных без использования функции getchar (), Чтобы быть точным, я пытался прочитать коэффициенты и степени от 1x ^ 2 + 3x ^ 6 + 5x ^ 0, вот когда я закончил писать эту программу, это не полная программа, она должна была быть частью программы.

int main(){
    int a , b, i = 0, n;
    char c[2];
    while(5){
        if(scanf("%1s", c) == 1){
            if( (n = atoi(c)) != 0 || (*c == 48) ){
               printf("%d", n);
            }
        }
    }
    return 0;
}

так, как правильно это сделать? какие есть модификации? спасибо:)

1 Ответ

0 голосов
/ 05 апреля 2020

если это 1x^2 + 3x^6 + 5x^0 ваш точный ввод, вы можете использовать scanf для сканирования.

    int powers[3];
    int coefficients[3];
    if (scanf("%dx^%d + %dx^%d + %dx^%d", &coefficients[0], &powers[0], &coefficients[1], &powers[1], &coefficients[2], &powers[2]) != 6)
    {
        exit(EXIT_FAILURE);
    }

...