如何使用数组来查找 C 中的最小值(可能还有最大值?)? [复制]
Posted
技术标签:
【中文标题】如何使用数组来查找 C 中的最小值(可能还有最大值?)? [复制]【英文标题】:How to use arrays to find the minimum number (and possibly the max?) in C? [duplicate] 【发布时间】:2020-10-01 04:16:40 【问题描述】:我知道这是一个基本问题,但我不太了解 C,而且我的老师不教,我想也许堆栈溢出可以帮助我并教我。特别是因为我要考试了,而且这个概念很可能会出现在考试中。我一无所知。
这是我的任务:
这是我的代码:
#include <stdio.h>
#define ARRSIZE 6
int main()
int arrOfInt[ARRSIZE] = 19, 51, 23, 6, 79, 95;
int i;
int min;
int INT_MIN;
min = INT_MIN;
for (i = 0; i < ARRSIZE; i++)
if(arrOfInt[i] < min)
min = arrOfInt[i];
printf("Minimum is: %d\n", min);
return 0;
我开始了,可能做错了,但我不知道下一步该做什么。
他还说“从头开始写”,我不知道那是什么意思。我假设他的意思是没有图书馆或类似的东西?我不完全确定,但我假设我正在做的是“从头开始”。
另外,如果你不想告诉我如何做最大数字,因为你害怕给我答案,那很好,你不必告诉我,因为一旦我知道如何做最小数字,我会尽最大努力做到这一点,并且能够自己完成(我想。)
谢谢你,任何帮助将不胜感激!
编辑:所以我会更清楚地编辑代码。我想这个问题会变成我询问如何修复一系列错误。
我稍微修正了代码,但出现了这个错误:
main.c:5:29:错误:“[”标记之前的预期表达式 int arrOfInt[ARRSIZE] = [19, 51, 23, 6, 79, 95];
编辑 2:错误已修复,但现在它什么也不输出。
编辑 3:它输入了一些东西,但它只输入了 0。我决定将 i = 0 更改为 i = 100,但它不起作用。
【问题讨论】:
这能回答你的问题吗? Finding smallest value in an array most efficiently 你从未声明变量min
。
if(arrOfInt)
条件应该实现什么?至于逻辑,碰巧你把逻辑弄错了。
你的测试是倒退的。你应该检查当前元素是否小于min
,那么它是一个新的最小值。
声明时不要忘记给min
一个初始值。并且不要使用 0
作为初始值,因为它已经小于任何数组元素。
【参考方案1】:
我设法解决了。我将把它作为答案发布,以便我可以将其标记为已解决。
我决定阅读幻灯片,更多地阅读这本书,并阅读我得到的答案。我尝试从不同的 POV 查看它并使用伪代码来帮助我,我终于解决了它。我重写了它,因为以前的代码一团糟,我不想再碰它了。 (哦,我也做到了,所以耶!)
编辑:看来我必须等待两天才能结束这个问题,但我现在想结束它。 :(
#include <stdio.h>
#define ARRSIZE 6
int main()
int min_value, max_value, i;
int arrOfNum[] = 19, 51, 23, 6, 79, 95;
int length;
min_value = max_value = arrOfNum[0];
length = sizeof (arrOfNum) / sizeof (arrOfNum[0]);
for(i = 1; i < length; i++)
if (arrOfNum[i] < min_value)
min_value = arrOfNum[i];
if (arrOfNum[i] > max_value)
max_value = arrOfNum[i];
printf("Minimum value is %d\n", min_value);
printf("Maximum value is %d\n", max_value);
【讨论】:
很高兴你把它整理出来——你的解决方案与列出的重复项相符。以上是关于如何使用数组来查找 C 中的最小值(可能还有最大值?)? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
我想要一个c程序来查找我使用数组编写的最大和最小数字有人可以帮助我如何在不使用数组的情况下制作[关闭]
Javascript:使用 reduce() 查找最小值和最大值?
c_cpp 使用分而治之的方法查找未排序数组中的最小值和最大值