1樓:聽不清啊
第一個是因為3/2是兩個整數的商,也是一個整數,所以就等於1(小數部分丟棄了)。
第二個是因為1.0/2=0.5,但是「%.lf"格式符指定輸出0位小數,所以小數部分四捨五入,就也是1了。
2樓:飄零↗落羽
x1 = 1.5
(int) x1 保留x1整數部分(小數部分捨去),是1x2 = 0.75
%.lf x2四捨五入輸出,是1
如果用%lf,預設保留6位
形如%.1lf這樣就是保留一位,%.2lf就是保留兩位
3樓:劉琰明
x1是1 是因為你print (int)。x2 try %f or %lf 不是 %.lf 那個decimal point 估計是錯了。
4樓:匿名使用者
輸出是: 1,0.500000 你是不是 看錯了
5樓:
float後面得加l
float x1,x2; x1=3/2; x2=x1/2; printf("%d%.1f",(int)x1,x2); 輸出值是多少
6樓:
x1=3/2;
x2=x1/2;
printf("%f\n",x1);
你會發現 x1 就等於1
因為 x1=3/2; 3和2都是整型,除下來結果也為整型,是1,然後賦值給float,變成1.0
為什麼也是正確的
7樓:匿名使用者
printf語句中沒有必要加l。%f和%lf沒有區別,一樣算對。
8樓:小柳
%f代表單精度浮點型資料(float),%lf代表雙精度浮點型資料(double),你這樣寫相當於將%lf型別版強制轉換成了%f型別,關於資料權型別轉換如果你還沒有學習過的話可以參考這篇部落格,強制型別轉換容易造成精度丟失,所以使用的時候要慎重
c語言問題,為什麼無論輸入什麼結果輸出的x1=0,x2=0
9樓:ㄨ『正典』灝皴
這樣du改#include
#include
void main()
else
printf("此一元二次方程的解為虛根");}
10樓:匿名使用者
x1=(-b+sqrt(d))/2*a;
x2=(-b-sqrt(d))/2*a;
中-b應該是來(自-1)*b
然後把printf("此一元二次方程
的解為\nx1=%lf,x2=%lf",&x1,&x2);中的&去了而且。。你的d應該是>=0吧
11樓:匿名使用者
你再執行試試,我這裡輸出不是 0
不過你**寫錯了,輸出中 x1,x2 應該去掉 & .
12樓:匿名使用者
你這個有兩個問題,2*a需要用括號括起來,還是printf中x1和x2不需要取地址符
13樓:悠遊萬年
輸出時x1,x2前多加了&
14樓:彌敦道
&x1和&x2是地址
# define ma(x,y) (x)*(y) int i=2; i=3/ma(i,i+2)+5; printf(「%d」,i); 輸出是什麼,為什麼?
15樓:匿名使用者
i=3/ma(i,i+2)+5;
經過巨集替換後抄:
i=3/(i)*(i+2)+5;
由於在此襲之前,i=2,所以
3/(i)*(i+2)+5
就成了3/2*4+5
由於參與運算的都是整
數,所以結果也是整數,即:
3/2的結果就是1,因此,表示式就變成了:
1*4+5
也就是9
16樓:匿名使用者
輸出來 9
沒有為什麼 **這源麼簡單 你問的是為什麼 輸出9 還是什麼我估計你是不明白 #define ma(x,y) (x)*(y) 這個就是個自定義 重新命名的意思
定義以後 ma(1,2) 就相當於 1*2懂了嗎
17樓:匿名使用者
答案為9.
步驟:i=3/ma(i,i+2)+5=3/(i)*(i+2)+5=3/2*4+5=1*4+5=9.
18樓:匿名使用者
9 i = 3/2 * 4 + 5 = 9
main() { double d=3.2; int x,y; x=1.2; y=(x+3.8)/5.0; printf("%d \n", d*y); } 結果 為什麼是0???
19樓:王愛飛
x = 1.2個語句有問題
抄,注意對襲於浮點數,計
算機的表示是近似值(有精度範圍),而1.2對於計算機是無法精確表示的,計算機應該是存了一個跟1.2最接近的數值(接近但是小於1.
2),這樣的話x+3.8(注,3.8 也不能精確表示)就小於5.
0,這樣表示式(x+3.8)/5.0的值就是接近1但是小於1,然後將這個小於1的數值賦給y,而y是int,不能接收小數,對於絕對值小於1的情況都是0,所以結果是0
20樓:
x=1.2; //x是整形,因此x=1
y=(x+3.8)/5.0;
=(1+3.8)/5.0
=4.8/5.0 //結果是0.96,但y是整形,因此y=0=0
21樓:
c語言中有個強bai制型別轉換du。舉個例子zhiint x;
x=1.2;
這個時候daox是1
float x; x=5;
這個時候x是5.0
你這個題目實專際是這樣的
屬y=(x+3.8)/5.0
因為x是int型,所以x取1
y=(1+3.8)/5.0=4.8/5.0因為y也是int型,所以y取0
22樓:匿名使用者
x是int型,x=1.2時會給截斷,變成x=1,
這樣x+3.8 / 5時是4.8/5 < 1,賦給y時就會給截斷了,變成0
#include"stdio.h" #include"math.h" int main() { float a,b,c,i,x1,x2; printf("請輸入三個值a,b,c:\n")
23樓:
程式雖然不完整,但錯誤是下面導致的:
float a,b,c,i,x1,x2; //x1是大寫,你後面又寫成小寫,c是區分大小寫的。
輸入x1,x2,x3想用外部函式的方法使其按大小依次輸出,但是形參實參問題處理不好,源**見下,求指點,謝謝~
24樓:飄飄渺渺夢逍遙
#include
void ***p(int *x1 , int* x2);}void main()
用上指標,不
用指標只能更改版
區域性權量
25樓:匿名使用者
其實是屬於排序問題,
最簡單的就是氣泡排序,專一段程式供
屬參考:
#include
int a[3];
void swap(int i , int j)void main()
for(i=0; i<3; i++)
for(j=i; j<3; j++)
if(a[i]>a[j])
swap(i,j);
for(i=0; i<3; i++)
printf("%-4d",a[i]);
printf("\n");}
若有以下程式段: int x1=1, x2=2, x3=3; x3=x1/x2; printf(「%d\n」,x3); 執行後輸出的結果是( )。 a
26樓:等一個人灰咖啡
c 看下c語言中關於/是怎麼解釋的就懂了 兩個整數/結果還是整數 x3=x1/x2; 還有這裡printf(「%d\n」,x3) 格式控制要求輸出d 也是整數
x 2x 2 2x 1x 2x 2 1x 1),其中x(根號
1 baix 2 du x 2 2x 1 zhix 2 daox 2 1 x 1 其中x 根號 回2 2 1 x 2 x 1 2 x 2 x 1 x 1 x 1 1 x 2 x 1 x 2 1 x 2 x 1 x 2 x 2 x 2 x 1 x 2 答x 2 x 2 x 2 3x 2 x 2 x 2...
x 2 x 1 3 2在 0,1 上的定積分
先用待定係數法把被積函式分開,然後你就會算了 答案是4 3。用第二來換元法源 0 1 1 x x 1 3 2 dx 0 1 1 x 1 2 3 4 3 2 dx 令x 1 2 3 2 tanz dx 3 2 sec z dz x 1 2 3 4 3 4 tan z 3 4 3 4 sec z 3 2...
x2x1x4x3x,x2x1x4x3x3x2x5x4,初二數學計算題
原式 1 1 x 1 1 1 x 3 1 1 x 2 1 1 x 4 1 x 1 1 x 3 1 x 2 1 x 4 1 x 1 1 x 4 1 x 2 1 x 3 2x 5 x 1 x 4 2x 5 x 2 x 3 2x 5 1 x 1 x 4 1 x 2 x 3 2x 5 x 2 5x 6 x ...