电脑网络

怎样在c语言中比较一个数组中元素的大小?

346 浏览

怎样在c语言中比较一个数组中元素的大小?

1 个回答

Julifrola用户头像
Julifrola 回答于 2024-07-20
已采纳

提问:怎样在c语言中比较一个数组中元素的大小?

这个题按照您给的方法比较过大小后,程序运行后最大值最小值都为70,请问哪个地方出错了#include <stdio.h>#include <string.h>struct student { char name[20]; float score;};int main( ){ int i,_max,_min; struct student stu[5]={{"wang",98.8},{"li",67.9},{"zhang",56},{"lu",78.7},{"liu",70}}; float max=stu[0].score,min=stu[0].score; for(i=1;i<4;i++) { if(stu[i].score>max) { max=stu[i].score; _max=i; } } printf("MAX:%-10s %8.2f\n", stu[i].name, stu[i].score); for(i=1;i<4;i++) { if(stu[i].score<max) { min=stu[i].score; _min=i; } } printf("MIN:%-10s %8.2f\n", stu[i].name, stu[i].score); return 0;}

网友回答:

上面这个太复杂了,不需要

你可以使用冒泡排序法。

这样将最小的放在最前面,最大的放在最后面。

下面是我修改好的程序:

#include <stdio.h>

#include <string.h>

struct student

{

    char name[20];

    float score;

};

 int main( )

{

    int i,_max,_min,j;

    struct student t;

    struct student stu[5]={{"wang",98.8},{"li",67.9},{"zhang",56},{"lu",78.7},{"liu",70}};

    float max=stu[0].score,min=stu[0].score;

    for (i=1;i<5;i++)

    {

        for (j=0;j<5-i;j++)

        {

            if (stu[j].score>stu[j+1].score)

            {

                t=stu[j];

                stu[j]=stu[j+1];

                stu[j+1]=t;

            }

        }

    }

        printf("MAX:%-10s %8.2f\n", stu[4].name, stu[4].score);

    printf("MIN:%-10s %8.2f\n", stu[0].name, stu[0].score);

    return 0;

}

下面是结果图:

这样简单多了

还有问题吗,谢谢采纳,Thanks♪(・ω・)ノ

我来回答

相关问题