c語言輸入問題,C語言輸入問題

時間 2022-02-01 18:07:06

1樓:佛魔道儒釋

最好用乙個scanf();把所有要輸的東西都放進去

,因為scanf 是你" "裡面 什麼樣的

專格式,你在輸入的時屬候必須按照那樣的格式

例如:scanf("%d,%d",&a,&b);那麼在輸入時就要輸a,b 如果是scanf("%d %d",&a,&b);就要這樣輸:a b

多個scanf 連在一起 我還沒用過。所以建議 乙個scanf把你要連在一起輸的資料 都輸進去;程式中輸入的時候a= 這些都不必要 可以把程式改了:

輸入的時候:a b c d e

這樣就好了

輸出也錯了 只需要以此類推 不需要帶上&符號 否則是錯誤的

2樓:小傻

不能輸出4個bai5角是因為for (c = 0; c < x * 10 / 5; c++),這個du

條件,zhi當c等於4的時候

dao,不符專合條件,你寫的是<4,應該寫成屬<=4,其他幾個條件類似,如下**,你可以debug一步步看看:

3樓:

printf("&c=%ld\n", c);

// scanf需要把輸來入的字串解釋成源格式串如」a=%d b=%c「指定的資料類

型,如int, char. 然後把轉換成的資料結果存放在指定的位址,所以&a, &b需要以變數的位址作為引數傳給scanf.

// 而printf要把傳給它的各種資料型別的變數的值根據格式串如"&a=%d\n&b=%c\n"中指定的資料格式來輸出,如a, b分別與格式串中的%d, %c對應,分別表示輸出格式為十進位制有符號整數、字元。所以a, b需要把它們的值作為引數傳給printf

4樓:匿名使用者

如果scanf語句不改,那應該輸入a=1 b=1等等,如果為了輸入方便,可以把a=,b=,都去掉。

你說回的是輸出位址答,位址有兩個位元組長,輸出的使用要用整形,而不能是浮點型,所以所有的輸出型別都應改為%d。已測試可正確輸出位址。

5樓:

你的scanf用的不好,按你這樣的用法,需要輸入:

a=1 b=2

類似的格式

你printf的時候使用&a,並不是輸出a的值,而是輸出a的位址

6樓:匿名使用者

#include

main()

將輸出地復址時

制的格式bai控制符都改du為zhi%d就可以除去daodebug error.

7樓:黑會峰

printf輸出時的變數不需要加位址符&

好好看看書吧。

8樓:落花默然

這一段錯了:

printf("&c=%ld\n",&c);

該改為專:屬

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

printf("c=%ld\n",c);

printf("d=%f\ne=%lf",d,e);

9樓:匿名使用者

用cin

or cout

c語言輸入細節問題 10

10樓:王木木加

#include

int main()

for(i=0;i

return 0;

}這個**可以用 ,我按你的**來一遍資料是0-858993460

1-858993460

2-858993460

3-858993460

4-858993460

看起來像是第二個&s沒有輸入成功,可能是因為取位址出錯了

c語言中資料輸入錯誤了如何提示輸入錯誤並實現要求重新輸入 5

11樓:匿名使用者

資料輸入錯誤,有兩種情況:

1 輸入的資料格式不正確,比如要求輸入內

整型,但是輸入了字元容型。

這種情況,可以通過scanf的返回值進行判斷,scanf的返回值是正確輸入的變數個數。當返回值和要輸入的變數個數不同時,則表示出錯,要求重新輸入。

2 輸入的資料不在合法範圍內。

比如要求輸入正數,但輸入了負數。這時需要判斷輸入的值是否合法。

以輸入兩個整數,要求範圍在0~100之間的**可以寫作int a,b,r;

while(1)//死迴圈,不得到正確輸入不退出。

12樓:竹林林茂

#include

#define n 100

void main()

i++;

if(i==n) i=0; //報道尾後i恢復為0} while (*p==0) p++;

printf("%d",*p);}

13樓:網路工程菜鳥

這個用if else語句即可,先設定好輸入資料範圍,當輸入後進行判斷,如果在範圍內,就不提示出錯,如果不在範圍內,就提示出錯,並重新輸入

14樓:匿名使用者

cin>>sth;

while(!check(sth))

15樓:匿名使用者

printf ("wrong number.try again!");

c語言中任意輸入兩數求和的問題!!!

16樓:小小詩不敢給她

#include

int main()

double a,b,sum=0;

printf("請輸入兩個數:");

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

sum=a+b;

printf("%f\n",sum);

return 0;

本題是較為基礎的,希望題主可以把錯誤貼出來,找出錯誤並加以改進。

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

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

17樓:匿名使用者

1、用scanf函式讀入兩個數,然後直接用printf函式輸出兩數之和即可。

2、例程:

#include

int main()

18樓:wang非在心上

這個問題很簡單撒!!你有可能不是**的錯誤啦!!

main()

19樓:匿名使用者

int a,b,sum;

scanf("%d",&a);

scanf("%d",&b);

sum = a+b;

printf("%d\n",sum);

//lz要的是這個麼?

20樓:姜桃

21樓:匿名使用者

錯誤**是什麼呀,你可以通過錯誤**去改錯呀,這個比別人給你寫的好~

c語言的字元輸入問題 10

22樓:匿名使用者

你應該是認為你只輸入了abc3個字元,應該就只會出現3次agin,但是當這3次完了之後你是按的「回車」鍵結束,所以enter被存入緩衝區,程式會將"回車"鍵也就是'\n'給c,所以會有4次agin輸出。

23樓:木子人俊

同意樓上的,因為你輸入「abc」,回車,在輸入流中實際上是四個字元。執行while迴圈前,c為『a『,因此列印乙個again,然後scanf讀入『b』,下次迴圈又列印乙個again,如此,連通『\n』,總共四個again。

如果你換成輸入abcdef,就會有7個again。

24樓:

沒看明白你到底要幹嘛?

你想輸入abc可以把定義乙個字元陣列嘛

而且你的while語句裡面的printf結束是個逗號。

#include

int main()

} 想輸幾個輸幾個

只輸入abc的話。把while條件改一下就行了

25樓:弈_心

迴圈地執行啊。

讀取a 字元後再讀b。但是最後還有乙個空格鍵。

空格鍵也當成字元。所有就有4個again.

26樓:匿名使用者

#include

main()

/*因為字元變數c的值為『a』,所以執行第一次迴圈,輸出agin 並輸入,由於緩衝區有字元

所以直接向緩衝區取乙個字元,是'b'這個字元,所以此時,字元變數c為'b',再次執行第二次迴圈,同理,字元變數c從緩衝區取字元c,執行第三次迴圈

再從緩衝區取回車符,執行第四次迴圈,注意輸出四個agin後,再次執行scanf("%c",&c)

,不知道你發現了沒有,程式並沒有結束,會有乙個游標閃動,沒有出現press any ……,就是這個原因*/

} //說明:scanf()可以接收回車符

//不信的話你可以在你的迴圈體裡加一語句:printf("%c\n",c);

//希望能夠幫助到你

27樓:主頁

char *str;

scanf("%s\n",str);

28樓:匿名使用者

乙個c語言字串輸入問題

29樓:池綠柳穆丙

char

a;只能放乙個字元,字串是字元的陣列,可以定義char

b[10];

就可以放10個字元

30樓:匿名使用者

我也試了一下,沒問題,你到底是什麼問題,是要在s1或s2中輸入空格嗎?那麼用gets函式;

gets()函式用來從標準輸入裝置(鍵盤)讀取字串直到換行符結束,但換行符會被丟棄,然後在末尾新增'\0'字元。

其呼叫格式為:gets(s);

其中s為字串變數(字串陣列名或字串指標)。

gets(s)函式與相似,但不完全相同,使用scanf("%s",&s);函式輸入字串時存在乙個問題,就是如果輸入了空格會認為字串結束,空格後的字元將作為下乙個輸入項處理,但gets()函式將接收輸入的整個字串直到遇到換行為止。

你改為:

#include

void main()

這樣就用回車表示輸入結束

31樓:微淡笑

我試了一下,沒有問題啊

32樓:阿四哥

c語言字串的學習,輸入指定字串,並且計算字串的位數

C語言 輸入字母,輸出有幾個,C語言 輸入30個字母,輸出有幾個

你好!改了,你對照原來的程式看看吧,有問題再問 include int main 定義陣列大小為 27,存26個字母的數量 int i 變數 j 可以不要 printf 輸入30個字元 n scanf s a 這個賦值放在迴圈外面,去掉陣列下標 c 改成 s 直接輸入字串 for i 0 i 30 ...

c語言問題,C語言問題。

考驕 用指標將兩個字串連結接起來,前一個while迴圈,確定s1字串走完,第二個while開始將s1的逐個字元複製給s1走完,也就是末尾,這樣就可以把字串都匯入到s1中 最後一個空寫的應該寫return s1 長魚修韋 很久沒碰這東西了。我來解釋下 第一個while的迴圈是為了讓指標指向第一個字串的...

C語言問題,c語言問題?

自我程式設計 列印輸出乙個ok。因為前面迴圈for語句有分號結束。所以後面的printf語句不在迴圈內,不受迴圈語句影響。 理佑平鄲胭 結果是22 7 7 8 22 你可以將 i i i i是先 1再計算,還有這裡的運算順序是從左到右,所以應該是7 7 i 14 8 22 前兩個相加時,i先加1,加...