帮帮小弟我吧,小弟我找不出异常。他总是多出一个人

帮帮我吧,我找不出错误。他总是多出一个人:
#include "stdafx.h"
#include "stdio.h"
#include "stdlib.h"

int main(int argc, char* argv[])
{
int i,num=0;
float heigh[10]={0};
  double average=0.0;
printf("请输入学生人数:\n");
  scanf("%d",&num);
for(i=num;i>0;i--)
{
printf("循环次数=%d",(num-i));
printf("请输入学生身高:%d\n");
scanf("%f\n",&heigh[num-i]);
average=average+heigh[num-i];
};
average=average/num;
printf("平均身高为:%f\n",average);
system("pause");
return 0;
}


------解决方案--------------------

scanf("%f\n",&heigh[num-i]);
改为
scanf("%f",&heigh[num-i]);
就ok了
------解决方案--------------------
C/C++ code

#include "stdafx.h"
#include "stdio.h"
#include "stdlib.h"

int main(int argc, char* argv[])
{
int i,num=0;
float heigh[10]={0};
  double average=0.0;
printf("请输入学生人数:\n");
  scanf("%d",&num);
for(i=num;i>0;i--)
{
printf("循环次数=%d",(num-i));
printf("请输入学生身高:%d\n");
scanf("%f",&heigh[num-i]);          //这里不需要"\n",scanf识别回车符的 当你输入回车时出现换行
average=average+heigh[num-i];
};
average=average/num;
printf("平均身高为:%f\n",average);
system("pause");    
return 0;
}