cでプログラミングするのは初めてです。私は、0 を入力するまで、ユーザーが入力した数字を受け取ることになっているこのコードを持っています。その後、それらをすべて追加する必要があります。たとえば、1、2、3、最後に 0 と入力すると、6 が出力されるはずですが、何らかの理由で最後の値が追加されません。私が言及したケースでは、6 ではなく 3 が出力されます。
#include <stdlib.h>
#include <stdio.h>
static char syscall_buf[256];
#define syscall_read_int()          atoi(fgets(syscall_buf,256,stdin))
main()
{
    int input;
    input = syscall_read_int();
    int result = 0;
    input = syscall_read_int();
    while (input != 0){
        result = result + input;
        input = syscall_read_int();
    }
    printf("%i\n", result);
}