help!!编写程序出现问题
本人新手,今天编一个程序,想要的结果是,如果输入非数字,则else,其他的正常,但当输入一个字符串的时候,else就会执行n遍,问题在哪我知道,大概是因为接收的是%d,但是不知道怎么改,求助。#include<stdio.h>
#include <malloc.h>
int main()
{
int s;
float *fa=NULL;
int i=0;
float k=0;
float sum=0;
float avg= 0;
printf("请输入学生人数:\n");
scanf("%d",&s);
while(1)
{
if(s>0&&s<=100)
{
fa=(float *)malloc(s*sizeof(float));
printf("请输入成绩:\n");
for(i=0;i<s;)
{
scanf("%f",&k);
getchar();
if(k>0&&k<100)
{
fa[i]=k;
sum+=k;
i++;
}
else
{
printf("请重新输入学生成绩\n");
}
}
avg=sum/i;
printf("平均数是:%f\n",avg);
break;
}
else
{
printf("请重新输入学生人数:\n"); //如果输入aagg,这里则会重复4次。
getchar();
scanf("%d",&s);
}
}
free(fa);
fa=NULL;
getchar();
}