請問該c語言程式哪錯了,結果為什麼總是先輸入的數而不是大的那個一

時間 2022-07-21 19:55:13

1樓:匿名使用者

你這個**沒錯!

----------

但是!之所以你得不到答案,原因無非如下:

你應該是如下方式輸入:

for example : 43 57(然後按enter鍵)於是,結果顯然為43了。

----------

錯誤原因:

這是由於你不了解scanf()函式的結果造成的。

你仔細看看,你在定義scanf()時,不是scanf("%d%d",&a,&b);,而是scanf("%d,%d",&a,&b);

在兩個%d之間按了「,」造成的。

在scanf()函式中,有乙個規定,你的輸入方式必須符合你定義時的格式。

也就是說,你要在輸入第乙個數後加個逗號「,」再輸入第二個數,就對了。

比如:43,57(按enter鍵)

結果:57

或者,你將scanf("%d,%d",&a,&b);改成scanf("%d%d",&a,&b);

然後:43 57(按enter鍵)

結果也是:57

兩種方法都行!!!

2樓:曬白的黑馬

#include

int main()

int max(int x,int y)

3樓:fps遊戲小仙女

我知道問題了,scanf("%d,%d",&a,&b);這個b根本沒讀數進去,你單步看一看就知道了

#include

int max(int x,int y);

int main()

int max(int x,int y)

這樣就沒問題了

4樓:四角擺

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

%d後多了個逗號。

看看這個c語言程式哪錯了,為什麼結果總是首字母而不是整個單詞呢

5樓:匿名使用者

3全部幫你改好了,有兩個地方要改,你仔細看看。

int main()

;int i,j;

printf("輸入乙個1~7的整數:\n");

scanf("%d",&j);

i=j-1;

printf("%s\n",a[i]);

return 0;}

6樓:與子如初見

你把printf裡邊的%c改為%s試試,%c本身就輸出乙個字元,%s才是輸出字串的格式控制符。

7樓:匿名使用者

你這裡字串陣列相當於二維陣列,每乙個字串相當於乙個一維陣列。用一維下標表示時,a[i]是每個一維元素,即一維陣列的位址,也即每個字串的首字母的位址,*a[i]當然就是每個字串的首位址了。

8樓:

#include

int main()

; int i,j;

printf("輸入乙個1~7的整數:\n");

scanf("%d",&j);

i=j-1;

printf("%s\n",*(a+i));

return 0;}

9樓:匿名使用者

printf("%s\n",a[i]);

這個c語言程式設計是不是有問題,結果總是第乙個輸進去的數字(無論大小都是)

10樓:匿名使用者

你好!!

上面看紅圈的地方,你是採用逗號分割輸入的數字的;

看下面的黃圈,分割是逗號;

11樓:吥機嘧

樓主**沒有問題,只是輸入的時候要加逗號,我用 visual c++6.0 是可以編譯的

12樓:堅持之藍色闊海

很高興為樓主解答,如果滿意請採納!

因為 scanf("%d,%d,%d",&a,&b,&c);這條語句表示每次輸入乙個資料後要逗號,你沒輸入逗號吧!如果按照你的程式就應該這樣輸入::45,56,23 這樣就能正常了

如果你想輸入乙個資料空格輸入乙個資料空格輸入乙個資料回車就把這個句**改為: scanf("%d%d%d",&a,&b,&c);

把逗號去掉。

13樓:匿名使用者

我這裡可以正常執行啊。

逗號得是英文的逗號哦

14樓:可愛可愛的你丶

輸入數值的時候中間不是加空格而是加逗號。比如輸入1,2,3

15樓:匿名使用者

輸入的時候要使用逗號(,)分隔。

用c語言比較兩個數的大小為什麼出來的總是輸入的第乙個數

16樓:幻想秘境

少了{},望採納

如下if(a>b)

else

17樓:南柯一夢

你程式執行時候輸入時是不是用的英文狀態下的逗號啊

你圖上貌似用的是拼音狀態的逗號 這是不對的

c語言 輸入10個數,輸出最大的那個 編譯沒錯 但執行結果總是第乙個數 求教

18樓:匿名使用者

3全部#include

int main ( )

else}}

printf ("the maxnum is %d\n", maxnum);

return 0;

}執行結果:

19樓:昊天宮主

把「s = a[i];a[i 1] = s;」改為「 s = a[i];a[i]=a[i 1];a[i 1] = s; 」試試吧!

c語言程式設計比較兩個數的大小,輸入數後執行顯示出結果總是前面的那個

20樓:

編譯你的程式執行正常呀,例如

$ ./a.exe

31415,33333

max=33333

$ ./a.exe

3333,3142

max=3333

我估計你輸入資料的格式沒注意的可能性比較大,碰到這種問題加一句printf 顯示一下實際的a,b值往往對解決問題有幫助。例如改成這樣:

#define debug1 1

#include

main()

int max(x,y)

int x,y;

21樓:3葉仙草

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

你的是scanf("%d,%d",&a,&b);

你輸入 應該要這樣 5,6

改成scanf("%d%d", &a, &b);

你輸入就可以 這樣 5 6

22樓:匿名使用者

#include

int max(int x,int y);

int main()

int max(int x,int y)

用你程式改的 不知道你用的什麼編譯器 實在是..

23樓:匿名使用者

#include

main()

int max(x,y)

你再試試

c語言程式與設計比較兩個數的大小 程式和書上一樣但是不對 最終結果總是顯示我先輸的第乙個數字

24樓:

因為你輸入的時候輸入法沒有調對,把輸入法改為英文輸入,中文的逗號和英文的逗號是不一樣的!!望採納!

25樓:陽光的雷咩咩

有可能輸入方式錯誤,%d,%d要求輸入的時候中間帶逗號。

如果你沒帶,那麼b的值有可能就是0。

證實方法:

int max(int x,int y)

{//加

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

c語言!!!為什麼我輸入數字的時候, 輸出的總是第乙個數?**出了問題

26樓:

scanf("%d%d",&a,&b); 兩個%d中間那個逗號不能要,語法錯誤了

27樓:

沒細看,但一般來說是你輸入時沒有用逗號隔開兩數。

c語言:乙個簡單的先輸入數值然後輸出數值,為什麼結果不一樣 20

28樓:

輸入的資料型別和你想輸出的型別不一樣,a定義的是double,但是輸入的時候是int(%d)你換成%f試一下

c語言程式執行結果為什麼出現1 INF

是因為運算結果溢位。解決辦法,例 chara 126,則a 45 126 45 172 256 85 uchara 2,則a 100 98 256 158 a,b基本型別相同時,有符號與無符號數的轉換 無符號a 有符號b if a elseb a max count 有符號數a 無符號數b if a...

c語言以下程式的輸出結果是a為什麼

輸出結果是字元z 位元組是20是因為 10 定義了你為x資料組準備了10個位子,沒個位子可以存放乙個資料 佔2節 10 2 20 位元組 printf c 由於沒有輸出列表所以c編譯器不知道是列印哪個變數裡的值 他產生的當然是個隨機數.假定int型別變數占用兩個位元組,其有定義 int x 10 則...

C語言為什麼這個程式執行沒有輸出的結果?與結構體陣列有關

十四行 struct student p stu 中間加個student 二十九行 if strcmp stu i major,t 0 因為是字串,所以要用雙引號,而不是單引號。三十二行 else if strcmp stu i major,w 0 同理 三十五行 else if strcmp st...