4 函数查找 lowes/highest 位置和值
4 Functions find lowes/highest position and value
我没有得到正确的值,我错过了什么?我的另一台 PC 上有类似的代码,它似乎可以工作。已经进行了几个小时的分析,据我所知,一切看起来都不错,但我肯定遗漏了一些东西。
我得到最大数量 = 22,最大位置 = 0,最小数量 = 22,最小位置 = 2
#include <stdio.h>
int findMaxPos(int *numbers, int length);
int findMinPos(int *numbers, int length);
int findMax(int *numbers, int length);
int findMin(int *numbers, int length);
int main()
{
int arr[] = { 100, 50, 20, 35 , 25, 22};
printf("Max number = %d\nMax pos = %d\nMin number = %d\nMin position = %d", findMax(arr, 6), findMaxPos(arr, 6), findMin(arr, 6), findMinPos(arr, 6));
getchar();
return 0;
}
int findMaxPos(int *numbers, int length) {
int maxPos = 0;
for (int i = 0; i < length; i++)
{
if (numbers[i] > numbers[maxPos])
maxPos = i;
}
return maxPos;
}
int findMinPos(int *numbers, int length)
{
int minPos = 0;
for (int i = 0; i < length; i++)
{
if (numbers[i] < numbers[minPos])
minPos = i;
}
return minPos;
}
int findMax(int *numbers, int length) {
int maxNr = numbers[0];
for (int i = 0; i < length; i++)
{
if (numbers[i] > maxNr);
maxNr = numbers[i];
}
return maxNr;
}
int findMin(int *numbers, int length)
{
int minNr = numbers[0];
for (int i = 0; i < length; i++)
{
if (numbers[i] < minNr);
minNr = numbers[i];
}
return minNr;
}
在 findMax
和 findMin
中的 if
之后还有一个额外的 ;
:
if (numbers[i] > maxNr);
删除 ;
:
if (numbers[i] > maxNr)
数组位置从 [0] 开始,因此您的最大位置和最小位置是正确的:
Numbers[0] = 100
和
Numbers[2] = 20
对于最大数量和最小数量,正如 Sander De Dycker 所说,您只需删除 findMax
和 findMin
中 if 语句末尾的额外 ;
函数。
我没有得到正确的值,我错过了什么?我的另一台 PC 上有类似的代码,它似乎可以工作。已经进行了几个小时的分析,据我所知,一切看起来都不错,但我肯定遗漏了一些东西。 我得到最大数量 = 22,最大位置 = 0,最小数量 = 22,最小位置 = 2
#include <stdio.h>
int findMaxPos(int *numbers, int length);
int findMinPos(int *numbers, int length);
int findMax(int *numbers, int length);
int findMin(int *numbers, int length);
int main()
{
int arr[] = { 100, 50, 20, 35 , 25, 22};
printf("Max number = %d\nMax pos = %d\nMin number = %d\nMin position = %d", findMax(arr, 6), findMaxPos(arr, 6), findMin(arr, 6), findMinPos(arr, 6));
getchar();
return 0;
}
int findMaxPos(int *numbers, int length) {
int maxPos = 0;
for (int i = 0; i < length; i++)
{
if (numbers[i] > numbers[maxPos])
maxPos = i;
}
return maxPos;
}
int findMinPos(int *numbers, int length)
{
int minPos = 0;
for (int i = 0; i < length; i++)
{
if (numbers[i] < numbers[minPos])
minPos = i;
}
return minPos;
}
int findMax(int *numbers, int length) {
int maxNr = numbers[0];
for (int i = 0; i < length; i++)
{
if (numbers[i] > maxNr);
maxNr = numbers[i];
}
return maxNr;
}
int findMin(int *numbers, int length)
{
int minNr = numbers[0];
for (int i = 0; i < length; i++)
{
if (numbers[i] < minNr);
minNr = numbers[i];
}
return minNr;
}
在 findMax
和 findMin
中的 if
之后还有一个额外的 ;
:
if (numbers[i] > maxNr);
删除 ;
:
if (numbers[i] > maxNr)
数组位置从 [0] 开始,因此您的最大位置和最小位置是正确的:
Numbers[0] = 100
和
Numbers[2] = 20
对于最大数量和最小数量,正如 Sander De Dycker 所说,您只需删除 findMax
和 findMin
中 if 语句末尾的额外 ;
函数。