我定义了一个结构体数组,并且初始化了数据,怎么查找最大值?

我定义了一个结构体数组,并且初始化了数据,怎么查找最大值?,第1张

你的错误在于,每次循环对与m做比较,而m只是数组中第一个元素的值。也就是说,只要比数组中的元素比第一个元素大,就会把这个值赋给e。所以你得到的结果是数组中最后一个大于m的数值。
如数组中的数为72 70 80 75 88 62 77
那么你的程序得到的结果就是77
你的程序可以这样改:
int i;
int m=stu[0]sx;
//int e;
for(i=1;i<=10;i++)
{
if(stu[i]sx>m)
m=stu[i]sx; //将e改为m
//else
//{
//e=m;
//}
}
printf("数学最高分是:%d",e);
}

查找最大值,恁简单的算法。
int nMaxIndex=0;
for(int i=0;i<=10;i++)
{
if(stu[i]sx>stu[nMaxIndex]sx)
nMaxIndex=i;
}
stu[nMaxIndex]就是最大的。

代码设计思路就不对
应该定义成数组
然后
先循环输入五个试题
接下来读取命令 1 2 3
根据命令 1 对应查找 2 对应修改 3对应删除
输入标识号
然后 查找到要查找/修改/删除的试题
对于查找 直接输出即可
对于修改 再对这个试题做一次输入
对于删除, 将试题删掉。

struct student
{
char NO[2];
char name[9];
int chinese;
int math;
};
main函数:char name[10];
两个地方的name长度不一。如果运行输入9个字符,struct 里面的name就没有结尾的'\0'
两个name要定义足够长,并且等长。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13323760.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-15
下一篇 2023-07-15

发表评论

登录后才能评论

评论列表(0条)

保存