c - 在函数中返回三个 int 中的最小值不返回任何内容
问题描述
我想像这样返回三个给定数字中的最小值。
我不知道为什么它不返回任何东西
#include <stdio.h>
int minimum3(int un, int deux , int trois)
{
int minimum;
if (un<deux && un <trois)
minimum= un;
else if (deux<trois && deux<un)
minimum= deux;
else if (trois<deux && trois<un )
minimum= trois;
return minimum;
}
int main(void) {
minimum3(4,88,8999);
return 0;
}
解决方案
正如评论中提到的其他人一样,您忽略了返回的值,对此的快速解决方法是:
int main(void) {
int min = minimum3(4,88,8999);
printf("min: %d\n",min);
return 0;
}
尽管如此,正如乔纳森所说,您的算法并不是那么有效,如果您处理的数字中有 2 个相等,则无法计算最小值。更好的是,imo,将有另一个函数来计算 2 个数字的最小值,然后使用它与第三个数字进行比较。这样干净多了。
#include <stdio.h>
int min2(int a,int b)
{
return ((a <= b) ? a : b);
}
int min3(int a,int b,int c)
{
int mintmp = 0;
mintmp = min2(a,b);
return ((mintmp <= min2(mintmp,c)) ? mintmp : min2(mintmp,c));
}
int main(void)
{
printf("%d\n",min2(5,10));
printf("%d\n",min3(5,-1,1));
return 0;
}
您当然可以将 替换为conditional expressions
更简单的if else
。
推荐阅读
- react-native - 有没有办法在 React Native 中使用基于 SMIL 的 SVG 动画?
- r - 标记 r 雷达图的图
- javascript - 为什么猫鼬TTL删除文档,即使部分过滤器与选项不匹配
- php - 试图找到一种方法来获取 json 数组中的一系列值并将它们添加到 int
- python - Python 3.8 - 在 Windows 10 中执行 Python 3.8
- amazon-sagemaker - 如何使用内置算法语义分割在 AWS SageMaker 上训练的模型在本地 PC 上进行推理?
- python - 试图从 BeautifulSoup 获取元素但可能被阻止
- fpga - printf 可以硬件加速吗?
- javascript - 是否有比 O(n^2) 更快的填充 2D JavaScript 数组
- c - 如何跳出循环而不执行该循环中的其他语句?