控制台求任意输入的n个数之和

自己写的程序有问题,麻烦帮忙看看,该怎么纠正,才能实现程序功能
程序功能:在控制台任意输入n个数,用空格隔开,按回车键则输出这些数字的和
#include <stdio.h>
#include <conio.h>

int main()
{
    int sum=0;
    int input=0;
    printf("请输入数字:\n");
    while(getch()!='\r')
    {
        scanf("%d",&input);
        sum=sum+input;    
    }
    printf("和为:%d",sum);
    return 0;    
} 

#include <stdio.h>
#include <conio.h>
 
int main()
{
    int sum=0;
    int input=0;
    printf("请输入数字:\n");
    while(getchar()!='\n')
    {
        scanf("%d",&input);
        sum=sum+input;    
    }
    printf("和为:%d",sum);
    return 0;    
} 

#include <stdio.h>
int main()
{
    int sum = 0;
    int input = 0;
    printf("请输入数字:\n");
    do
    {
        scanf("%d", &input);
        sum = sum + input;
    } while (getchar() != '\n');
    printf("和为:%d", sum);
    return 0;
}