求最大值最小值,运行结果最大值与最小值都是-1,为什么?

求最大值最小值

#include <stdio.h>
int main()
{
    float maxscore,minscore;
    float s[10];
    int i=1;
    printf("请输入十位同学的数学成绩:");
    scanf("%.1f",&s[10]);
    maxscore=minscore=s[0]; 
    while(i<10)
    {
        if(s[i]>maxscore)
        {maxscore=s[i];}
        if(s[i]<minscore)
        {minscore=s[i];}
        i++;
    }
    printf("在这十位同学中,成绩最高的是:%.lf分,成绩最低的是%.lf分",maxscore,minscore);
 } 

运行结果最大值最小值都为-1,求解huo

数组没有初始化,你这个

 scanf("%.1f",&s[10]);

赋值也有问题,压根数组里面就没有值。

 

#include <stdio.h>

int main()
{
    float maxscore,minscore;
    float s[10];
    int i;
    printf("请输入十位同学的数学成绩:\n");
    for(i=0;i<10;i++)
    {
		printf("请输入第%d位同学的数学成绩:",i+1);
        scanf("%f",&s[i]); //%.1f会导致scan()吸收后面的0,无效输入
    }
    
	maxscore=minscore=s[0];
    
	while(i>0)//此时i的值是10
    {
        if(s[i]>maxscore)
        {
            maxscore=s[i];
        }
        else if(s[i]<minscore)
        {
            minscore=s[i];
        }
        i--;
    }
    printf("在这十位同学中,成绩最高的是:%.lf分,成绩最低的是%.lf分\n",maxscore,minscore);
	return 0;
}

 

#include <stdio.h>

int main()
{
    float maxscore,minscore;
    float s[10];
    int i;
    printf("请输入十位同学的数学成绩:\n");
    for(i=0;i<10;i++)
    {
		printf("请输入第%d位同学的数学成绩:",i+1);
        scanf("%f",&s[i]); //%.1f会导致scan()吸收后面的0,无效输入
		if (s[i]>100.00 || s[i]<0.00)
		{
			printf("输入成绩无效,请重新输入:");
			scanf("%f",&s[i]);
		}
		printf("---第%d位同学的数学成绩是:%.2f\n",i+1,s[i]);
    }
    
	maxscore=minscore=s[0];
    
	while(i>0)//此时i的值是10
    {
        if(s[i]>maxscore)
        {
            maxscore=s[i];
        }
        else if(s[i]<minscore)
        {
            minscore=s[i];
        }
        i--;
    }
    printf("在这十位同学中,成绩最高的是:%.2f分,成绩最低的是%.2f分\n",maxscore,minscore);
	return 0;
}