1樓:蕭蓓莫孤雲
程式有問題把
在max函式中
三個if語句的條件都為逗號表示式
逗號表示式的值為逗號表示式中最後乙個表示式的值即下面左邊的三條語句相當於右邊的三條語句
if(x>y,x>z)
a=x; if(x>z)
a=x;
if(y>x,y>z)
a=y; if(y>z)
a=y;
if(z>x,z>y)
a=z; if(z>y)
a=z;
應把逗號改為&&
&&的意思是且,和;
修改後程式如下
#include
void
main()
intmax(int
x,int
y,intz)
2樓:匿名使用者
#include
int max(int,int,int);
void main()
int max(int x,int y,int j )else
return z;
}1。不要在函式內定義函式,2.你規定的輸入格式是x,x,x 例 3,5,6
3樓:
輸入函式有問題,不能走有逗號
4樓:稻子
三目運算子可以轉換為if語句的。給你拿if寫一下你就明白了if(a>b)
else
數字再多了拿三目運算子即不好做,寫出來也會讓人迷糊。
其實這樣的語句最好寫成if形式。用三目運算子寫成這樣不好看的。
以上回答你滿意麼?
c語言編寫3個數比較大小
5樓:娛樂小八卦啊
**沒有問題,
不過你的輸入沒按照你自己scanf所設定的格式來scanf("%d,%d,%d",&a,&b,&c);
這麼寫的話,你應該這麼輸入:
1,7,8(回車)
或者2,5,3(回車)
別忘了逗號,也別忘了將3個數都輸完再回車
如果這麼寫,
scanf("%d%d%d",&a,&b,&c);
就可以這麼輸入:
2(回車)
3(回車)
1(回車)
擴充套件資料c語言編寫3個數比較大小其他**樣例:
# include //標頭檔案
int max(int x,int y,int z); //宣告子函式
void main()//主函式
int max(int x,int y,int z)//子函式體,比較大小返回最大值
6樓:
輸入三個數字時,中間的三個逗號都要用英文模式下輸入,不然就會出現你的這種情況。
7樓:
# include //標頭檔案
int max(int x,int y,int z); //宣告子函式
void main()//主函式
int max(int x,int y,int z)//子函式體,比較大小返回最大值
8樓:匿名使用者
真是比較無語了.
首先你必須把 int max() 放到 main()上面, 這才是程式最大的問題.
再試試看得到什麼結果
三樓提到的也是個常見病. 大家輸入數字時很少人會 1, 2, 3, 而是12
3看你自己的習慣決定怎麼改動 scanf("%d,%d,%d") 是否去掉裡面的","
9樓:匿名使用者
用函式也沒宣告嘛
輸入是不是正確可以新增監視表達自己f7單步看看 估計你沒輸入對
10樓:匿名使用者
兄弟,再回回爐吧。你還沒搞清楚呢。
11樓:匿名使用者
先把冒泡的概念整清楚....
c語言 比較三個數大小
12樓:水不流則腐
比較方法:
1、比較從第乙個數開始,先比較第乙個數和第二個數的大小,如果第乙個數大於第二個數,則將第乙個數和第二個數互換;不大於(即等於或小於)則不作處理。
2、然後,再將第二個數和第三個數比較,同樣,若大於則將它們互換。
以1 2 3為例 先考慮我們所有的可能輸入型別(這裡不一一枚舉):1 2 3;3 2 1 ;2 1 3;1 1 1;1 2 2;1 2 1;整體的思路為輸入三個數後,我們從中取兩個數,在這兩個數中選出最大的後將最大的數與第三個數做差比較這裡請參考**理解;
**:#include
int comp(int x,int y)
return x>y?x:y;
int main()
int i,j,k;
int a,b,c;
scanf("%d %d %d",&a,&b,&c);
j=comp(a,b);//j為兩個數里最大的值
k=c;//a+b-j求的是a,b裡比較小的那個數;
if(j-k<0) //說明k最大按順序輸出就可以了1 2 3;2 2 3
if(j-k>=a+b-j)//3 2 1
if(j-k總結:
其實這個**本質也和用if語句比較大小排序差不多,只不過這裡不需要每次都呼叫三個if語句,直接一條if語句便可輸出答案效率更高一點。
13樓:蘇寄蕾桓舒
程式沒什麼問題,是不是你不知道怎麼輸入。
你規定的輸入格式是三個數之間用逗號分隔。如果你輸入時用空格分隔,就會出現你所說的情況。
應該是你根本就不知道你寫的程式語句具體是什麼意思。
另外,程式太複雜了,一條語句可以解決問題的事情,搞得這麼複雜。
14樓:小笑聊情感
在max函式裡,else後面應該寫m = y;而不是m = z;另外max宣告可以放在main()裡面;如下: # include int main (){ int max
15樓:赫連騫澤塗佈
a=2/25
b=1/6=4=24
c=1/5=5/25
首先可以看出c大於a.
24*25=600
b=100/600....c=120/600...所以b小於c。
所以三個數的大小是。c最大。b第二大。。a最小。
16樓:卿倚墨安福
出錯的原因是,函式裡不可以巢狀函式。
你在main裡巢狀定義了max函式,這是不允許的。
解決方法:
(1)main後面的2個大括號去掉1個
(2)int
max函式體放到最後,int
max函式那行末尾的分號去掉
(3)return
0;移到
if(c>d)
printf("%d\n",c);
else
printf("%d\n,d");
的後面,}的前面
17樓:波暢鄲嫚
輸入的3個數之間用西文半形逗號分隔
18樓:匿名使用者
#includeint main()
19樓:
# include
void main()
int max(int x,int y,int z)你是不是輸入格式有誤啊?
20樓:匿名使用者
#include
/* 這才是三個數的比較*/
int main()
21樓:匿名使用者
我看了一下底下的答案,幾乎都是錯的,只要用10 21 9測試,把資料從小到大輸出就會發現結果不對了。這是我的演算法,你可以參考一下。
22樓:匿名使用者
# include
int main()
int max(int x ,int y ,int z)
23樓:匿名使用者
你這由於只有三個數字,所以還是很簡單的,完全可以用傻瓜的方法if(a>=b&&a>=c)
printf("%d",a);
if(b>=a&&b>=c)
printf("%d",b);
if(c>=a&&c>=b)
printf("%d",c);
反而比排序演算法執行效率高
24樓:匿名使用者
/* //三個數比較大小
int x,y,z,q,w;
printf("請輸入三個要比較的整數:");
scanf("%d %d %d",&x,&y,&z);
if (x>y)
else
if (q>z)
else
printf("三數中最大的為:%d",w);*/
25樓:藍兔小童鞋
#include
int main()
if(a if(b printf("%d %d %d\n",c,b,a); return 0; }原理就是運用冒泡演算法,把最大的數浮在最上面,而小的數就下沉,最後就輸出。 26樓:千鍾家的縫合怪 把輸入法改一下你的逗號可能不對 ,和,不一樣 27樓: int m,int n; 這行直接用int m,n;表示就行了 scanf("%d,%d,%d",&a,&b,&c);把"%d,%d,%d"之間的逗號去除. 28樓:匿名使用者 #include int main() 29樓:放飛自我的鐘老師 不要max也可以解,max反而容易混淆。 個人喜歡表示式?:邏輯簡單,步驟少:先比較出最大值,其餘兩個值再排二三名。 # include main() 30樓:匿名使用者 這個問題沒能幫助上你表示抱歉,希望你不要生氣,好不好 求乙個用陣列比較三個數大小的c語言程式 沒有問題,不過你的輸入沒按照你自己scanf所設定的格式來scanf d,d,d a,b,c 這麼寫的話,你應該這麼輸入 1,7,8 回車 或者2,5,3 回車 別忘了逗號,也別忘了將3個數都輸完再回車 如果這麼寫,scanf d d d a,b,c 就可以這麼輸入 2 回車 3 回車 1 回車 擴... 輸入的3個數之間用西文半形逗號分隔 程式沒什麼問題,是不是你不知道怎麼輸入。你規定的輸入格式是三個數之間用逗號分隔。如果你輸入時用空格分隔,就會出現你所說的情況。應該是你根本就不知道你寫的程式語句具體是什麼意思。另外,程式太複雜了,一條語句可以解決問題的事情,搞得這麼複雜。include int m... void main 這個對初學者來說不好懂,不適合。main if max printf d max 正確了 main include void main 重點在於中間變數的設定 其實思路比較3數只要兩次.另外數的型別一定要講明白,c中對資料型別要求很嚴格.利用巨集定義可以方便完成此功能,如下演示 ... 首先你的輸入函式有問題,正確應該這樣寫 scanf d d d a,b,c 注意對比!不要和輸出混淆!你的程式還有別的問題 你的程式整體寫的很亂套 d max a,b b a a d e max a,c c a a e f max b,c c b b f 上面的部分都有問題,你自己想一想,max a... uses math function maximize a,b,c integer integer begin result max max a,b c end 呼叫showmessage inttostr maximize 100,121,3 procedure tform1.button1cli...c語言編寫數比較大小,C語言編寫3個數比較大小
比較數大小的c語言程式,比較三個數大小的c語言程式
菜鳥提問,用C語言編能比較數大小的程式
C語言菜鳥問題,比較數大小,懂的大蝦進,執行的時候出問題
用delphi編能比較數大小的程式