c - 从数组循环中获取 Min 和 Max 标签
问题描述
我正在尝试从文件中找到最小值和最大值。当程序读取文件时,每个值都进入numbers[]
数组。我的目标是显示有关数组中每个值的一些信息,这是预期的输出:
我的程序运行良好,但是在for loop
. 这是我的代码:
typedef struct Points {
int min;
int max;
} Point;
int main(int argc, const char * argv[]) {
returnNumbersArray("numbers.txt");
// Display output
printf("Sr.\t\tNumber\t\tPrime\t\tOdd/Even\t\tMin/Max\n");
for (int i = 0; i < LENGTH; i++) {
printf("%d\t\t%d\t\t\t%s\t\t\t%s\n", i + 1,
numbers[i],
(isPrime(numbers[i]) ? "Yes":"No"),
(isOddOrEven(numbers[i]) ? "Odd":"Even"));
}
// Define Min and Max values
getMinMax(numbers);
printf("%d, %d", point.max, point.min);
return 0;
}
// Return min and max value from the array.
Point getMinMax(int array[]) {
point.max = point.min = array[0];
for (int i = 1; i < LENGTH; i++) {
if (array[i] > point.max) {
point.max = array[i];
}
if (array[i] < point.min) {
point.min = array[i];
}
}
return point;
}
getMinMax(int array[])
for loop
有效,我确实得到了 Min 和 Max 值,但我想在我的方法中放置一个适当的标签,main
并使用与isPrime(numbers[i]) ? "Yes":"No"
. 有人可以告诉我我做错了什么或提供解决此问题的建议吗?
我当前的输出:
感谢您的时间。
解决方案
Point minmax = getMinMax(numbers);
for (int i = 0; i < LENGTH; i++) {
printf("%d\t\t%d\t\t\t%s\t\t\t%s\t\t\t%s\n",
i + 1,
numbers[i],
(isPrime(numbers[i]) ? "Yes" : "No"),
(isOddOrEven(numbers[i]) ? "Odd" : "Even"),
(numbers[i] == minmax.max ? "Max" : (numbers[i] == minmax.min ? "Min" : ""))
);
}
推荐阅读
- python - 使用字符串生成唯一 ID
- reactjs - Is SPA a monolith in the browser?
- python - Sapcy 3.0:无法为 Lemmatizer 添加服装查找
- php - Symfony Panther - 如何在本地主机上保持 SSL?
- python - 无法从 Python 中的 SOAP 请求生成响应
- javascript - 如何在节点 js 中将用户重定向到他们的特定页面
- python - 使用 Telethon 时运行循环
- c# - 为什么 Quartz .NET 3.0.7 调度程序在 DB 不可用错误上挂起
- jquery - Bootbox将微调器图标添加到按钮onclick?
- c - 为什么在这种情况下我不能使用分配的指针?