[英]return the minimum of three int's in function doesn't return anything
我想像這樣返回三個給定數字中的最小值。
我不知道為什么它不返回任何東西
#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,將有另一個 function 計算 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;
}
您當然可以用更簡單的if else
替換conditional expressions
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.