Когда я пытаюсь дать 3 входа в мою программу, ей нужно 4 для правильной работы. Это почему? - PullRequest
0 голосов
/ 14 января 2019
#include <stdio.h>
#include <stdlib.h> 
#define f(x) (1 / (x*x+1))



int main(){
    double a,b,h,x,y;

    printf("Enter a, b, h:  ");
    scanf(" %lf %lf %lf " , &a, &b, &h);

// I ask for 3 inputs but the programm needs 4 to run...why is that?


    x = a;

     while(x<b)
     {

        y = f(x);
        printf("%lf %lf \n", x ,y );
        x +=h;

     }


    system("Pause");
    return(0);  

}

1 Ответ

0 голосов
/ 14 января 2019

Проблема с вашим scanf:

scanf(" %lf %lf %lf " , &a, &b, &h);
                   ^

scanf необходимо увидеть следующий непробельный пробел, чтобы определить конец этого «0 или более пробелов», поэтому вам придется дать 4-е значение (это может быть мусором - при условии, что это не пробел) для scanf для завершения ввода.

Если вы работаете в Windows, вы можете нажать Ctrl-Z в новой строке и нажать Enter. Это отправит EOF в программу, которая также может завершить ввод. (Я полагаю, что вы находитесь на Windows, потому что я вижу system("pause") в вашей программе)

...