七阳丶
2021-01-03 18:39
采纳率: 100%
浏览 29

求最大值最小值,运行结果最大值与最小值都是-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

  • 收藏

3条回答 默认 最新

  • 呆呆papa 2021-01-03 19:35
    已采纳

    数组没有初始化,你这个

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

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

     

    1 打赏 评论
  • 启明时刻 2021-01-03 22:00
    #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;
    }
    

     

    打赏 评论
  • 启明时刻 2021-01-03 22:01
    #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;
    }
    
    打赏 评论

相关推荐 更多相似问题