C 中的min和max函式的問題

時間 2021-08-30 11:14:16

1樓:倫歆欒曉絲

包含在c++標準庫中標頭檔案

中,在標頭檔案

中定義了min,max的巨集,若在包含

的同時包含

會導致函式無法使用。

提供了_cpp_min等函式來代替min函式的功能。

c++11標準:

中min函式的原型

default

(1)template

const

t&min

(const

t&a,

const

t&b);

custom

(2)template

const

t&min

(const

t&a,

const

t&b,

compare

comp);

initializer

list

(3)template

tmin

(initializer_list

il);

template

tmin

(initializer_list

il,compare

comp);

2樓:

首先確定你的min和max是標準庫裡面的,因為win32標頭檔案windef.h中,也定義了min和max,而windef中的是巨集,不是函式。如果是巨集的話,你這麼複雜的表示式巢狀就可能出現問題。

如果是在windows工程中,你可以把min和max換成_min和_max試試,這倆一般情況下代表c++庫中的min和max。

下來你可以在每個引數前面都加上適當的cast試試,防止模版推導錯誤。不過我覺得這裡不會推導錯誤才是。。

3樓:

不太清楚你這個min和max是哪個庫的,?

標準庫沒有帶這種函式,應該是vc帶的吧

這種函式不是用來限制的,而是比較

max的意思是比較2個引數誰大,min是比較誰小,返回值就是比較後選中的值

所以這不是你要的效果,手動寫判斷**來限制最大最小值吧

c語言中max,min具體用法是怎麼樣的

4樓:碧海風雲

c語言沒有max這個函式,需要自己定義並編寫max函式。

例如源**可以是:

#include

int max (int a, int b)int main()

執行結果

輸入 2 3

輸出 3

5樓:聽不清啊

max()不是一個c語言裡提供給你的函式,而是程式設計師自己定義的。

是你看的那個程式源**上,寫程式的人自己定義了一個名為max的函式。它和main()函式不一樣,main()才是c語言函式庫裡已經定義好的,main()已經被賦予了意義,那就是每個c程式的主函式。而這個max()只是寫那個源**的人自己定義的。

比方說,可以定義一個巨集來完成這個計算:

#include

#define max(a,b) ((a)>(b)?(a):(b))int main()

6樓:匿名使用者

原因很簡單:c不提供max、min等函式。

如果想要實現,有幾種簡單方法:

int min(int x,int y)

#define min(x,y) (((x)<(y))?(x):(y))

將任意一種複製到程式開頭(#include之後,main之前),即可。

7樓:仝蝶晁丙

它們是兩個

巨集定義,並非函式。使用方法如下例所示:

#include

#include

intmain(

void)//結果:

8樓:匿名使用者

c庫裡面沒有max min函式

所以 需要你自己定義的

你得寫一個max函式才行。

9樓:偽笑掩飾憂傷

//這個是自己宣告的函式 求最大值和最小值#include

int max(int x, int y)int min(int x, int y)int main()

10樓:蟹蟹沒有蟹黃堡

有個math庫  math庫裡有max這個函式 #define max(a,b)(a>b?a:b),是c語言版的行內函數

。第三行是一個三目運算子,可以這樣理解:

if ( a > b )

return a;

else

return b;

這是c++版的行內函數,不同的是多了個型別檢查,所以函式的資料型別不一定是float,可以是int,double......inline float max ( float a, float b )// (a>b?a:

b)。上面的與下面語句是等效的:

if ( a > b )

return a;

else

return b。

c語言是一門通用計算機程式語言,應用廣泛。c語言的設計目標是提供一種能以簡易的方式編譯、處理低階儲存器、產生少量的機器碼以及不需要任何執行環境支援便能執行的程式語言。

儘管c語言提供了許多低階處理的功能,但仍然保持著良好跨平臺的特性,以一個標準規格寫出的c語言程式可在許多電腦平臺上進行編譯,甚至包含一些嵌入式處理器(微控制器或稱mcu)以及超級電腦等作業平臺。

二十世紀八十年代,為了避免各開發廠商用的c語言語法產生差異,由美國國家標準局為c語言訂定了一套完整的國際標準語法,稱為ansi c,作為c語言最初的標準。

11樓:二狗出現了

因為max函式未定義。你必須自己實現max函式,才能使用它。

可以寫個函式,也可以用巨集。比如在include下一句寫上:

#define max(x,y) ( x>y?x:y )這句表示:當x>y時,max(x,y)的值為x,反之,則為y。

12樓:匿名使用者

首先 我沒聽說過有max和min關鍵字或者函式呼叫語句

你可以自己寫一個max或者min的函式,然後在主函式裡面進行呼叫

不知道你從**聽來的,不過你要是用max,就要自己編寫這個函式,然後進行呼叫

13樓:smile一路清新

都檔案都沒包含進去,max函式在**定義了?

沒有找到定義就報錯了

14樓:

結構型別定義和結構變數說明  在實際問題中,一組資料往往具有不同的資料型別。例如, 在學生登記表中,姓名應為字元型;學號可為整型或字元型; 年齡應為整型;性別應為字元型;成績可為整型或實型。 顯然不能用一個陣列來存放這一組資料。

因為陣列中各元素的型別和長度都必須一致,以便於編譯系統處理。為了解決這個問題,c語言中給出了另一種構造資料型別——“結構”。 它相當於其它高階語言中的記錄。

  “結構”是一種構造型別,它是由若干“成員”組成的。 每一個成員可以是一個基本資料型別或者又是一個構造型別。 結構既是一種“構造”而成的資料型別, 那麼在說明和使用之前必須先定義它,也就是構造它。

如同在說明和呼叫函式之前要先定義函式一樣。

一、結構的定義定義一個結構的一般形式為: struct 結構名 ;成員表由若干個成員組成, 每個成員都是該結構的一個組成部分。對每個成員也必須作型別說明,其形式為:

型別說明符 成員名; 成員名的命名應符合識別符號的書寫規定。例如: struct stu;

15樓:匿名使用者

要寫相應的函式 max和min~~

~~~~

16樓:匿名使用者

在第二行輸入

#include

c語言好像沒有max函式。

需自定義函式

17樓:匿名使用者

vc6.0中的max函式需要自己實現

18樓:匿名使用者

c語言沒有這2個函式,max,min是c++ algorithm中的

19樓:匿名使用者

你要引入math.h庫

excel函式中min和max函式

某某 excel之max跟min函式 其實,樓主實際對excel 函式max和min沒有充分地理解 max函式編輯公式為 max number1 number2,number13,number,顯然是指的數字,max函式的意義在於從number1到無窮盡的數字當中,找出最大的一個數字 當然,這個nu...

VB中怎麼用函式MAX和MIN求出一組資料的最大值和最小值

您好,vb中沒有max和min函式,不過你可以自己程式設計實現。給你一個求隨機產生6個兩位正整數的例子 private sub command1 click dim a 6 as integer for i 1 to 6 randomize a i int rnd 90 10print a i ne...

c中建構函式與解構函式的問題,C 中建構函式與解構函式的問題

你的getname函式在 你的類定義中只有getscore和getid c 關於建構函式和解構函式呼叫次數的問題 沒問題啊。引數傳遞的時候第一次拷貝構造呼叫,在函式返回的時候賦值給c2 再次呼叫了拷貝構造。析構的話 c1 c2 c 三次 傳遞引數和返回引數各一次拷貝建構函式,所以是2次 有兩個物件c...