c語言用宏寫比較大小函數(shù) 比較大小C語言

c語言 函數(shù) 數(shù)組 比較大小

我知道你為什么會錯了,因為你輸入數(shù)據(jù)的方式不對,正確的如:(3.5,4.5\n)就可以了,你么有好的習慣,也有么調式的經(jīng)驗,如果你輸入錯誤如:(3.5 4,5)或者(3,5 回車 4,5) 就會出錯,因為你的b變量沒有得到數(shù)據(jù)或者數(shù)據(jù)溢出了,調試的結果是這樣的 b= -1.0737418e+008 float,

成都創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供隨州網(wǎng)站建設、隨州做網(wǎng)站、隨州網(wǎng)站設計、隨州網(wǎng)站制作等企業(yè)網(wǎng)站建設、網(wǎng)頁設計與制作、隨州企業(yè)網(wǎng)站模板建站服務,十載隨州做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡服務。

正確的代碼如:scanf("%f,%f,",a,b); (3.5,4.5)比較等于4,注意是道號,輸入也要加道號

正確的代碼如:scanf("%f %f,",a,b); (3.5 4.5)比較等于4 ,%f后面是空格,你輸入的數(shù)后也需要是空格或者回車

你這代碼錯太多了,比如float比較的是兩個實數(shù),但你實際是int 類型結果,所以你的代碼只是用與2個int類型的整數(shù)比較,可以看看郝斌的C語言視頻有詳細講這個Max函數(shù)的

一起學習,謝謝

編寫一個C語言函數(shù),比較兩個字符串的大小

#includestdio.h

#define

N

100

int

input(char*a,char*b)//輸入兩個字符串

{

printf("Input

the

first

information:\n");

fgets(a,N,stdin);

printf("Input

the

secend

information:\n");

fgets(b,N,stdin);

}

int

my_strcmp(char*a,char*b)//比較字符串每個字符的大小

{

while((*a!='\0')(*b!='\0'))

{

if(*a*b)

{

return

0;

}

else

if(*a*b)

{

return

1;

}

else

{

a++;

b++;

}

}

if((*a=='\0')(*b!='\0'))//字符串b比字符串a(chǎn)長

{

return

1;

}

else

if((*a!='\0')(*b=='\0'))//字符串a(chǎn)比字符串b長

{

return

0;

}

else

{

return

2;

}

}

int

main()

{

char

a[N]={0};

char

b[N]={0};

int

net2=0;

input(a,b);//調用輸入函數(shù)

net2=my_strcmp(a,b);//調用比較大小函數(shù)

if(0==net2)//輸出大小

{

printf("ab\n");

}

else

if(1==net2)

{

printf("ab\n");

}

else

{

printf("a=b\n");

}

return

0;

}

擴展資料:

一、return在函數(shù)中的作用

我們如果將函數(shù)看做一個加工廠,參數(shù)就是我們向加工廠投入的原料,具體的函數(shù)功能實際上就是加工的過程,而return語句代表返回值,就是加工廠在實現(xiàn)加工之后給“投資人”的成品。

二、return語句的特點

1、在函數(shù)當中,遇到return語句之后就意味著函數(shù)運行的結束,在此之后的代碼是不運行的。

2、它不支持任何運算也沒有任何內建方法,和任何其他的數(shù)據(jù)類型比較是否相等時永遠返回false,也可以將None賦值給任何變量。

3、執(zhí)行到return語句時,會退出函數(shù),return之后的語句不再執(zhí)行。但將return語句放在try語句塊中,是個例外。

三、return的默認值:return函數(shù)默認的返回值為undefined。

C語言: 定義一個宏,比較a、b的大小,不要用大于、小于和IF運算符

代碼如下:

#include "stdio.h"

void main()

{

float a, b ,c;

printf ("請輸入三個數(shù),會為你從大到小排列!\n");

scanf("%f %f %f",a,b,c);

if(abc){printf("%f,%f,%f",a,b,c);}

else if(accb){printf("%f,%f,%f",a,c,b);}

else if(baac){printf("%f,%f,%f",b,a,c);}

else if(bcca){printf("%f,%f,%f",b,c,a);}

else if(cbba){printf("%f,%f,%f",c,b,a);}

else if(caab){printf("%f,%f,%f",c,a,b);}

//編譯器不識別三個連續(xù)的符號運算,必須用且()和或(||)he否(?。?/p>

}

擴展資料

C語言中宏定義的優(yōu)點

方便程序的修改

使用簡單宏定義可用宏代替一個在程序中經(jīng)常使用的常量,這樣在將該常量改變時,不用對整個程序進行修改,只修改宏定義的字符串即可,而且當常量比較長時, 可以用較短的有意義的標識符來寫程序,這樣更方便一些。

相對于==全局變量==兩者的區(qū)別如下:

1、宏定義在編譯期間即會使用并替換,而全局變量要到運行時才可以。

2、宏定義的只是一段字符,在編譯的時候被替換到引用的位置。在運行中是沒有宏定義的概念的。而變量在運行時要為其分配內存。

3、宏定義不可以被賦值,即其值一旦定義不可修改,而變量在運行過程中可以被修改。

4、宏定義只有在定義所在文件,或引用所在文件的其它文件中使用。 而全局變量可以在工程所有文件中使用,只要再使用前加一個聲明就可以了。換句話說,宏定義不需要extern。

用c語言如何編寫一個比較兩個數(shù)大小的程序

第一種方法:

輸入兩個數(shù)值。

比較大小。

輸出結果。

以整型為例,代碼如下:

#include?

int?main()

{

int?a,b;

scanf("%d%d",a,b);

if(ab)?printf("%d%d\n",a,b);

else?if(a?==?b)?printf("%d=%d\n",a,b);

else?printf("%d%d\n",a,b);

}

第二種方法:

#include

using namespace std;int main()

{

int nA,nB;

cinnAnB;//讀入兩個數(shù)

if (nA nB)

{

cout"nA nB"endl;

}

else

{

if (nA == nB)

{

cout"nA == nB"endl;

}

else

{

cout"nA nB"endl;

}

}

}

第三種方法:

#include

void main()

{

int a,b;? //定義兩個變量

scanf("%d? ?%d",a,b);? ?//從鍵盤輸入值分別給這兩個變量

if(ab)? ? //判斷a是否大于b

printf("a 大于b");

else if(a==b)? ? //判斷a是否等于b

printf("a 等于b");

else? ? ?//若上面兩種情況都沒有發(fā)生則a小于b

printf("a 小于b");

C語言是一門通用計算機編程語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產(chǎn)生少量的機器碼以及不需要任何運行環(huán)境支持便能運行的編程語言。

盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平臺的特性,以一個標準規(guī)格寫出的C語言程序可在許多電腦平臺上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業(yè)平臺。

二十世紀八十年代,為了避免各開發(fā)廠商用的C語言語法產(chǎn)生差異,由美國國家標準局為C語言制定了一套完整的美國國家標準語法,稱為ANSI C,作為C語言最初的標準。目前2011年12月8日,國際標準化組織(ISO)和國際電工委員會(IEC)發(fā)布的C11標準是C語言的第三個官方標準,也是C語言的最新標準,該標準更好的支持了漢字函數(shù)名和漢字標識符,一定程度上實現(xiàn)了漢字編程。

求解釋c語言帶參的宏 比較大小的意思

#define zuida(a,b,c) ((a)(b)?(ac?a:c):(bc?b:c))

程序編譯時會【原樣替換,不作運算】宏,故程序中宏zuida(a,b,c)等價于((a)(b)?(ac?a:c):(bc?b:c))

所以遇到宏直接把它還原成它等價的語句即可

經(jīng)查詢三目運算符運算規(guī)則如下: b ? x:y,先計算條件b,然后進行判斷。如果b的值為true,取x的值;否則,取y的值。

( {(a)(b)?【(ac?a:c)】:【(bc?b:c)】} )

①Y/N ? ②Y/N ?a:c : ③Y/N?b:c

Y/N ? A : B

分別計算②③的運算結果為A、B最后計算①的結果:真或假,真就取值A假就取B,所以這個宏就是求三個數(shù)的最大數(shù)的

文章標題:c語言用宏寫比較大小函數(shù) 比較大小C語言
網(wǎng)頁地址:http://www.muchs.cn/article2/hggsic.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設定制網(wǎng)站、商城網(wǎng)站移動網(wǎng)站建設、企業(yè)建站、品牌網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設網(wǎng)站維護公司