就是这里有一些问题我有一些不明白,

#include<stdio.h>
int main(){
int sum=0,i,j,n,cnt[10001];
char ch[10001][9];
scanf("%d",&n);
getchar();
for(i=0;i<n;i++){
scanf("%s %d",&ch[i],&cnt[i]);
sum+=cnt[i];
}
sum=sum/n/2;
printf("%d ",sum);
int min,flag=0;
min=cnt[0]-sum;
if(min<0){
min*=-1;
}
for(i=0;i<n;i++){
j=cnt[i]-sum;
if(j<0){
j*=-1;
}
if(j<min){
flag=i;
min=j;
}
}
printf("%s",ch[flag]);
}
我想问的是就是这个getchar的作用是吃掉什么吗?还有那个ch是是用来输入名字的但是为什么要用二维数组啊,我用了一维数组时最后打印不出来。这是是PTA的一道猜数字(L1-056 猜数字),

getchar()吸收掉空格