这是怎么回事?第一次用这个软件希望能得到回答

do
{
    scanf("%d",a+num);
    num++;
} while (getchar() != '\n');

/*
如果写成while(getchar() != '\n')
这样的话会把第一个元素给取走,少一个数
上述写法每次取走一个都会刷新一下缓冲区,注意输入最后一个数后面不要有空格
比如我们输入 2 3 5 7 11 13 17 19(Enter)
num 记录的是数的个数
*/ do
{
scanf("%d",a+num);
num++;
} while (getchar() != '\n');

/*
如果写成while(getchar() != '\n')
这样的话会把第一个元素给取走,少一个数
上述写法每次取走一个都会刷新一下缓冲区,注意输入最后一个数后面不要有空格
比如我们输入 2 3 5 7 11 13 17 19(Enter)
num 记录的是数的个数
*/

while循环是先判断,再循环;do-while循环是先循环,再判断