㈠ c語言中,下面三種變數定義的輸入/輸出格式是什麼
都一樣,printf("%f",a);
㈡ 請分別說明c語言中輸入、輸出格式字元串的特點與作用。
格式說明由「%」和格式字元組成,如%d%f等。它的作用是將輸出的數據轉換為指定的格式輸出。格式說明總是由「%」字元開始的。不同類型的數據用不同的格式字元。 格式字元有d,o,x,u,c,s,f,e,g等。 如 %d整型輸入/輸出,%ld長整型輸入/輸出, %o以八進制數形式輸入/輸出整數, %x以十六進制數形式輸入/輸出整數, %u以十進制數輸入/輸出unsigned型數據(無符號數)。 %c用來輸入/輸出一個字元, %s用來輸入/輸出一個字元串, %f用來輸入/輸出實數,以小數形式輸出,(備註:浮點數是不能定義輸入的精度的,所以,scanf(「%6.2f」,&a)這種寫法是「錯誤的」!!!) %e以指數形式輸出實數, %g根據大小自動選f格式或e格式,且不輸出無意義的零。 scanf(控制字元,地址列表) 格式字元的含義同printf函數,地址列表是由若干個地址組成的表列,可以是變數的地址,或字元串的首地址。如scanf("%d%c%s",&a,&b,str)
㈢ C語言里,輸入和定義的數據類型可以不同嗎..
有些類型可以兼容,比如可以把int型賦值給double型,但是反過來就會有精度上的損失
㈣ C語言輸入輸出格式
在C語言中,輸入使用的是scanf函數,scanf函數的格式為scanf(格式控制,地址列表),如scanf("%d"&a)。
輸出使用的是printf()函數,printf函數的格式為printf(格式控制,輸出表列),如printf("%d ",a)。在輸出時可以在"%"和字母之間插進數字表示最大場寬。可以根據需要輸出數字的位數來決定「%」前的數值。
如:%3d表示輸出3位整型數, 不夠3位右對齊。
%9.2f 表示輸出場寬為9的浮點數, 其中小數位為2, 整數位為7,小數點佔一位, 不夠9位右對齊。
%8s 表示輸出8個字元的字元串, 不夠8個字元右對齊。
(4)c語言定義格式與輸入格式不同擴展閱讀
C語言輸入輸出時的規則:
一、格式說明符個數與輸入數據個數不相等的情況:
當我們輸入數據時,只要沒有按回車鍵,所輸入的數據都還存放在緩沖區,並沒有存入變數中。按【Enter】鍵後,scanf()函數才會從緩沖區中取走數據。緩沖區是一個先進先出的隊列,即取走數據的時候,遵循先輸入的數據先取走的原則。
scanf函數的格式說明符有幾個就要取幾次數據,只要碰到格式說明符就必須把數據取走,至於是不是要把取走的數據存放起來,就得看數據列表中的數據個數。沒取完的數據繼續留在緩沖區中。
二、寬度輸出的情況:
1、在%和格式字元之間加入一個整數來控制輸出數據所佔寬度
2、在%和格式字元f之間加入一個「整數1.整數2」來控制輸出數據的格式。
整數1:整個輸出數據占的總寬度
整數2:輸出實數的小數部分的個數
注意:先用整數2處理小數部分,再用整數1處理整個數據,包括已處理好的小數部分
三、寬度輸入的情況:
寬度輸入指的是在%和格式說明符d之間加入一個整數。如:scanf("%2d", &x);
注意:
1、%d與%1d是不同的,它們具有不同的含義。
2、 當寬度小於數據的實際寬度時,截取指定寬度的部分作為一個數進入緩沖區,再將剩餘部分作為另一個數放入緩沖區。
㈤ 一個有關c語言的問題!請問我輸入的格式不同為什麼會出現這些不同的運行結果!
這些數字都是亂碼,原因是你定義a,b,c,d,e的時候沒有初始化。沒有初始化,系統就隨便給他們分配值,就有可能是858993460這些值。當你只輸入一個參數時,只有a賦值了,b c值是亂的,最後計算出結果也是亂的,輸入三個參數時,a b c都賦值正確了,所以結果也就正確。
變數在使用前一定要先初始化,這是良好的編程習慣。
㈥ C語言中scanf如果輸入與格式字元串不同會怎麼樣
那就出錯,中止繼續接收,函數返回已經正確接收的數據個數。
㈦ 為什麼C語言自定義類型的書寫格式不同,
第一個 struct之後有lnode是為了在結構體里引用這類結構體(定義指向這類結構體的指針),如果缺少,你能成功定義這樣的指針嗎?(個人觀點,struct之後的標識最好不要用這個結構體的名,容易混)
第二個 struct之後沒有,是因為在結構體中用不到像上面那樣的(引用其本身的)數據定義
㈧ c語言的輸入輸出格式
在C語言中,輸入使用的是scanf函數,scanf函數的格式為scanf(格式控制,地址列表),如scanf("%d"&a)。
輸出使用的是printf()函數,printf函數的格式為printf(格式控制,輸出表列),如printf("%d\n",a)。在輸出時可以在"%"和字母之間插進數字表示最大場寬。可以根據需要輸出數字的位數來決定「%」前的數值。
如:%3d表示輸出3位整型數,
不夠3位右對齊。
%9.2f
表示輸出場寬為9的浮點數,
其中小數位為2,
整數位為7,小數點佔一位,
不夠9位右對齊。
%8s
表示輸出8個字元的字元串,
不夠8個字元右對齊。
(8)c語言定義格式與輸入格式不同擴展閱讀
C語言輸入輸出時的規則:
一、格式說明符個數與輸入數據個數不相等的情況:
當我們輸入數據時,只要沒有按回車鍵,所輸入的數據都還存放在緩沖區,並沒有存入變數中。按【Enter】鍵後,scanf()函數才會從緩沖區中取走數據。緩沖區是一個先進先出的隊列,即取走數據的時候,遵循先輸入的數據先取走的原則。
scanf函數的格式說明符有幾個就要取幾次數據,只要碰到格式說明符就必須把數據取走,至於是不是要把取走的數據存放起來,就得看數據列表中的數據個數。沒取完的數據繼續留在緩沖區中。
二、寬度輸出的情況:
1、在%和格式字元之間加入一個整數來控制輸出數據所佔寬度
2、在%和格式字元f之間加入一個「整數1. 整數2」來控制輸出數據的格式。
整數1:整個輸出數據占的總寬度
整數2:輸出實數的小數部分的個數
注意:先用整數2處理小數部分,再用整數1處理整個數據,包括已處理好的小數部分
三、寬度輸入的情況:
寬度輸入指的是在%和格式說明符d之間加入一個整數。如:scanf("%2d",
&x);
注意:
1、%d與%1d是不同的,它們具有不同的含義。
2、
當寬度小於數據的實際寬度時,截取指定寬度的部分作為一個數進入緩沖區,再將剩餘部分作為另一個數放入緩沖區。
參考資料來源:網路——scanf
網路——printf()