1樓:金色潛鳥
佔位寬度計算中,逗號算一位。
%5.1f 意思是輸出時,資料總佔位是5個字元位置,小數點版下權1位,如果是負數,負號也要佔1位,小數點也要佔一位。例如:
float a;
a=12.34;
printf("%5.1f\n",a);
a= -12.34;
printf("%5.1f\n",a);
輸出:12.3 給了5個位子,空一個位子印的是空格。
-12.3 正好5個位子。
當定義的格式,給的位子太少時,則根據資料實際需要進行佔位。例如:
a=9876.54;
printf("%5.1f\n",a);
a= -9876.54;
printf("%5.1f\n",a);
9876.5 這個給了6個位子。小數點下保留1位。
-9876.5 這個給了7個位子。小數點下保留1位。
2樓:詹子康
這樣輸出的資料保留一位小數,輸出的寬度為5
c語言中 %-5.1f 是什麼意思
3樓:隨便什麼名啦啦
在"%"和字母之間加入一個"-"號可說明輸出為左對齊,%f 表示輸出為浮點數,5.1表示輸出場寬為5,小數位為1。
則%-5.1f表示輸出左對齊的場寬為5,小數位為1的浮點數。
1、可以在「%」和字母之間插進數字表示最大場寬。
2、可以在「%」和字母之間加小寫字母l,表示輸出的是長型數。
3、可以控制輸出左對齊或右對齊,即在"%"和字母之間加入一個"-"號可說明輸出為左對齊, 否則為右對齊。
擴充套件資料:規定符:
%d 十進位制有符號整數
%u 十進位制無符號整數
%f 浮點數
%s 字串
%c 單個字元
%p 指標的值
%e 指數形式的浮點數
%x, %x 無符號以十六進位制表示的整數
%o 無符號以八進位制表示的整數
%g 把輸出的值按照%e或者%f型別中輸出長度較小的方式輸出%p 輸出地址符
4樓:匿名使用者
%f 為浮點型,
負號 代表左對齊
5 代表寬度為5
.1 代表一位小數
不想多說什麼。自己看。
5樓:匿名使用者
%-5.1是個是格式描述, 資料是右對齊,整數部分佔5位,小數1位的浮點數
c語言中%5.1f是什麼意思
6樓:
%5.1f 指定該浮點型變數,總長度為5,注意包括小數點。其中','後的1是指定小數位數為1.
7樓:煩s太多不明白
輸出的浮點型數小數點左邊部分保留5位,如果不夠5位前面補0,如果超過5位按實際位數顯示,小數點後保留1位。
8樓:匿名使用者
輸入的資料佔5格(超5格頂出5格,沒超向右補空格)保留1位小數
c語言的%1f是什麼意思
9樓:天雲一號
%1f是用在printf函式中的輸出抄格式的說明符。襲具體解釋如下bai:
使輸出float型的數值的整du數部zhi分保持1位的固定位寬,如果實際整dao數部分超過1位的寬度,則按實際位數輸出。(整數部分不會低於1位)
舉例如下:
printf("%1f", 1.31); // 輸出1.31printf("%1f", 122.31); // 輸出122.31
10樓:迷惘中的東王
f指浮點數 1表示抄
位數 用於襲scanf就是隻讀取一位數並存為一個浮點bai數,duprintf中就是至少輸出1位
如程式zhi
int main()
你輸入123後輸出地結dao果是 1.000000 999.000000
11樓:匿名使用者
printf("%lf",d);
說明這個d是double型的
c語言中逗號運算子怎麼用?
12樓:匿名使用者
一、用法:
1、當順序點用,結合順序是從左至右,用來順序求值,完畢之後整個表示式的值是最後一個表示式的值。
main()
先算括號內的值:s+2=4,d+4=7;括號內應為(4,7),括號內取值只取最後一個,如果沒有括號則取第一個;a=12+7=19。
x=(y=3,(z = ++y+2) +5);
是首先把y賦值為3,把y遞增為4,然後把4加上2,把結果6賦值給z,接下來把z加5最後把x賦為結果值11。
2、注意事項:逗號運算子( , )是c語言運算子中優先順序最低的一種運算子。
二、其它用法:
1、在for裡面的應用:
int i;int j;
for(i=0,j=0;i<5;i++,j++)
2、當分隔符:int i,j;
擴充套件資料
運算子優先順序:
1、優先順序從上到下依次遞減,最上面具有最高的優先順序,逗號操作符具有最低的優先順序。
2、相同優先順序中,按結合順序計算。大多數運算是從左至右計算,只有三個優先順序是從右至左結合的,它們是單目運算子、條件運算子、賦值運算子。
3、基本的優先順序需要記住:指標最優,單目運算優於雙目運算。如正負號。
先算術運算,後移位運算,最後位運算。請特別注意:1 << 3 + 2 && 7等價於 (1 << (3 + 2))&&7.
邏輯運算最後計算。
13樓:次次次蛋黃米亞
在c語言中,多
個表示式可以用逗號分開,其中用逗號分開的表示式的值分別結算,但整個表示式的值是最後一個表示式的值。
具體用法:
假設b=2,c=7,d=5,
a1=(++b,c--,d+3);
a2=++b,c--,d+3;
對於第一行**,有三個表示式,用逗號分開,所以最終的值應該是最後一個表示式的值,也就是d+3,為8,所以a1=8。
對於第二行**,那麼也是有三個表示式,這時的三個表示式為a2=++b、c--、d+3,(這是因為賦值運算子比逗號運算子優先順序高),所以最終表示式的值雖然為d+3,為8,但a2=3。
注意:逗號運算的結合性是從左至右,完畢之後整個表示式的值是最後一個表示式的值。
假設:int a,x=2,y=5;
(1)a[1]=(x+3,y++,x++);那麼最終結果是:a[1]=2 x=3 y=6; )
(2)a[2]=(x++,x+3,x+7);那麼最終結果是:a[2]=10 x=4;
14樓:天雲一號
逗號運算子( , )是c語言運算子中優先順序最低的一種運算子,結合順序是從左至右,用來順序求值(最後一個逗號後面表示式的值作為整個表示式的值)。
下面舉例說明逗號運算子的使用方法:
int a=3, b=5, c;
c = a>b, a+b; // 執行後c值為0,因為逗號運算子的優先順序低於賦值運算子,所以先將a>b的結果(為0)賦值給c,之後運算a+b(結果不儲存),所以c=0
c = (a>b, a+b); // 執行後c值為8,因為括號的優先順序高於賦值運算子,所以先算括號內的表示式,此時計算結果為最後一個表示式的值,即a+b的值,所以c=8
15樓:匿名使用者
2樓說的很詳細了 ,逗號運算子
的作用是將若干表示式連線起來。它的優先順序別在所有運算子中是最低的,結合方向是"自左至右"的。其值是最後一個表示式的,其間所有的都要計算,你所說的 a=12+(s+2,d+4); 先算s+2.
的4,然後算d+4,最後逗號表達是式的值是d+4=7,整個表示式的值是12+7=19,
16樓:匿名使用者
回答zw791:
括號運算子的結果是取括號內最右邊表示式的結果.
d+4=7,12+7=19
17樓:匿名使用者
2-4 c基礎知識 3逗號運算子
18樓:匿名使用者
c語言提供一種特殊的運算子——逗號運算子。用它將兩個表示式連線起來。如:
3+5,6+8
稱為逗號表示式,又稱為「順序求值運算子」。逗號表示式的一般形式為
表示式1,表示式2
逗號表示式的求解過程是:先求解表示式1,再求解表示式2。整個逗號表示式的值是表示式2的值。例如,上面的逗號表示式「3+5,6+8」的值為14。又如,逗號表示式
a=3*5,a*4
對此表示式的求解,讀者可能會有兩種不同的理解:一種認為「3*5,a*4」 是一個逗號表示式,先求出此逗號表示式的值, 如果a的原值為3,則逗號表示式的值為12,將12賦給a, 因此最後a的值為12。另一種認為:
「a=3*5」是一個賦值表示式」,「a*4」是另一個表示式,二者用逗號相連,構成一個逗號表示式。這兩者哪一個對呢?賦值運算子的優先順序別高於逗號運算子, 因此應先求解a=3*5(也就是把「a=3*5」作為一個表示式)。
經計算和賦值後得到a的值為15,然後求解a*4,得60。整個逗號表示式的值為60。
一個逗號表示式又可以與另一個表示式組成一個新的逗號表示式,如(a=3*5,a*4),a+5 先計算出a的值等於15,再進行a*4的運算得60(但a值未變,仍為15),再進行a+5得20,即整個表示式的值為20。
逗號表示式的一般形式可以擴充套件為
表示式1,表示式2,表示式3......表示式n
它的值為表示式n的值。
逗號運算子是所有運算子中級別最低的。因此,下面兩個表示式的作用是不同的:
1 x=(a=3,6*3)
2 x=a=3,6*a
第1個是一個賦值表示式,將一個逗號表示式的值賦給x,x的值等於18。第2個是逗號表示式,它包括一個賦值表示式和一個算術表示式,x的值為3。
其實,逗號表示式無非是把若干個表示式「串聯」起來。在許多情況下,使用逗號表示式的目的只是想分別得到各個表示式的值,而並非一定需要得到和使用整個逗號表示式的值,逗號表示式最常用於迴圈語句(for語句)中.
請注意並不是任何地方出現的逗號都是作為逗號運算子。例如函式引數也是用逗號來間隔的。如
printf("%d,%d,%d",a,b,c);
上一行中的「a,b,c」並不是一個逗號表示式,它是printf函式的3個引數,引數間用逗號間隔。
如果改寫為
printf("%d,%d,%d",(a,b,c),b,c);
則「(a,b,c)」是一個逗號表示式,它的值等於c的值。括弧內的逗號不是引數間的分隔符而是逗號運算子。括弧中的內容是一個整體,作為printf函式的一個引數。
c語言表達能力強,其中一個重要方面就在於它的表示式型別豐富,運算子功能強,因而c使用靈活,適應性強。在後面幾章中將會進一步看到這一點。
19樓:匿名使用者
一、逗號運算子的特性及作用
逗號運算子的作用是將若干表示式連線起來。它的優先順序別在所有運算子中是最低的,結合方向是"自左至右"的。
如:3*3,4*4
二、逗號表示式
逗號表示式的一般形式是:表示式1,表示式2,表示式3......表示式n
逗號表示式的求解過程是:先計算表示式1的值,再計算表示式2的值,......一直計算到表示式n的值。最後整個逗號表示式的值是表示式n的值。
看下面幾個例子:
x=8*2,x*4 /*整個表示式的值為64,x的值為16*/
(x=8*2,x*4),x*2 /*整個表示式的值為128,x的值為16*/
x=(z=5,5*2) /*整個表示式為賦值表示式,它的值為10,z的值為5*/
x=z=5,5*2 /*整個表示式為逗號表示式,它的值為10,x和z的值都為5*/
逗號表示式用的地方不太多,一般情況是在給迴圈變數賦初值時才用得到。所以程式中並不是所有的逗號都要看成逗號運算子,尤其是在函式呼叫時,各個引數是用逗號隔開的,這時逗號就不是逗號運算子。
如:printf("%d,%d,%d",x,y,z);
C語言,刪除陣列中的重複數字然後輸出
include stdio.h include string.h void main for k i 1 i 10 i if j k a k a i printf n for i 0 i 樓主程式有問題的地方 k值的初始化 k需要在每次迴圈時 跟j同時初始化 樓主在迴圈對比a b時,除了第一次執行迴...
用c語言編寫在自然數中輸出100以內的素數
include 輸出100之內的所有素數 int main int i int j int flag 1 for i 2 i 100 i for j 2 j i 2 j if i j 0 flag 0 break if flag 1 printf d n i flag 1 return 0 擴充套件...
C語言中區分陣列中的奇偶數,c語言程式設計求一個陣列中值是偶數的元素之和
好一個偷天換日 最開始 ji,ji1,ou,ou1 都指向同一地址在for 迴圈中 第一次 temp 1時 執行第二個if,於是 ji temp.第一個空間的值為1第二次 temp 2時 執行第一個if,此時的 ou指向的是第一個空間,此時 ou temp,就把先前的 ji空間個覆蓋了,於是第一空間...