怎麼解決1 2 0 5的問題?在C語言演算法上

2021-04-21 21:34:26 字數 4699 閱讀 8587

1樓:淘知子

你在定義的時候,定義為double型就可以實現的就是把1定義一下的。float型也可以的

在c語言中,為什麼1.0/2.0=0.5 ,而1/2=0呢?

2樓:石沉溪洞

1和2都是整數型,結果不可能得到乙個浮點型的小數

3樓:豆菲特

1/2二者都是整型,結果也是整型,0.5轉化為整型就是0.

4樓:左腳流的一滴淚

保留小數與取整方式不同

5樓:匿名使用者

沒有為什麼,規定如此。

以後寫程式多了就明白這麼為什麼規定了。

關於c語言程式設計問題。乘0.5和除2。怎麼結果不一樣。大家幫忙看看。

6樓:匿名使用者

你定義的都是整型變數,*0.5就變成浮點數運算啦

/2的話還是按整型來運算,就像是1/2結果是0,浮點運算的話1/2.0就變成了0.5

7樓:匿名使用者

if((4*x+3*y+(36-x-y)/2) == 36)

兩個整型量相除,最後取整數部分;

8樓:軒轅詩語

因為你的x,y都是整形int,乘以0.5以後的結果系統自動只保留整數部分,所以不同

c語言在區間[0,1]內用二分法求方程e^x+10x-2=0的近似根,誤差不超過0.5*10^(-3),幫忙看一下錯誤怎麼改?

9樓:匿名使用者

首先抄,你的手寫格式和編襲程語言格式是不一致的bai。然後

du,你使用的自zhi然對數底數e,也沒有定義。其dao他的都是小問題。

#include

#include

#include

#define e 2.7182828//定義自然對數底數的值float getvalue(float x)int main()

printf("%0.3f\n",c);

return 0;

}我這邊算出來的結果是0.091。

10樓:老衲欠扁

1 #include

2 #include

3 #include

4 #include

5 #define e (2.71818)6 float getvalue(float x)7 10 int main()

11 23 printf("%0.3f\n",c);

24 return 0;

25 }

(gcc 需要-lm鏈結庫)

11樓:我透明_的

e未定義 需要定義e

12樓:匿名使用者

#define e 2.71828

float getvalue(float x)for(i = 1; i <= x; i++)return temp+10x-2;

}while(fabs(getvalue(c))>0.5*10^(-3) && fabs(a-b)>0.5*10^(-3))改為

while(fabs(getvalue(c))>0.0005 && fabs(a-b)>0.0005)

13樓:為夢而戰

e定義了沒,還有e^x+10*x-2

如何學習c語言

14樓:卯永芬次凰

學習c語言的方法很多,最有效的莫過於

學習心態以及學習的順序!

心態要端正,遇到問題別懷疑自己的大腦和能力,我敢保證只要你沒有智障,任何語言對你來說絕對不是問題!

學習順序非常重要,比方說你不能在不學習普通型別變數的操作下去學習陣列……我建議你好好把基礎大好,還有乙個就是

c語言在執行的過程中

他的底層是如何實現的,這個很重要,

如果你按照我說的學習,c語言對你來說

很容易!

15樓:赫微蘭羅巳

藉此希望對初學者有點幫助:

一、分號

,大括號

分號。分號是表示式結束的標誌,一般表示式後面都要有。

寫「;」的時候一定要注意:是否要結束前面的語句

。注意:if,switch,for,while語句,資料型別定義,函式定義。

if(a>b)

/*if語句,沒有分號*/

while(i+=10,i!=100);

/*while語句迴圈體為空,依靠逗號語句實現迴圈*/

struct

a/*結構體資料定義,沒有分號*/

b;/*結構體變數,要有分號*/

intsum(...)

/*函式定義,沒有分號*/

大括號。大括號是乙個語句段的標誌。

寫大括號時最好一次寫一對,然後把游標移到大括號裡寫

。避免遺漏。

二、運算符號

「=」與「==」

「=」用於賦值,注意「=」左邊必須是變數,右邊可以是常量也可以是變數。「==」用於判斷兩個量的大小,左右兩邊可以是常量也可以是變數(

盡量把常量寫在左邊,這樣「==」誤寫成「=」時編譯器就會報錯

)。運算表示式有它本身的值

。「=」語句值為「=」右邊的量的大小;「==」語句值為判斷結果,無外乎兩種,0(表示「==」兩邊不等)1(「==」兩邊相等)。

(i=1)==(3==4);

/*i值為1,整個表示式值為0*/

「,」逗號語句是從左到右計算,整個逗號語句的值為最後乙個語句的值

i=(j=2,j+8,j++);

/*先計算j=2,值為2,j+8不是運算表示式,跳過,計算j++得到整個括號內的值3*/

「/」「/」兩邊都是整型變數的時候結果也是整型,而且結果遵循向0靠攏的原則

。運算子的優先順序及結合方向

不多說了,**一定要背牢。

三、變數

命名不要吝惜,能說明白性質盡量在變數的名字上說明。

避免老是使用乙個字母,或者難以理解的變數名

。對於較長的變數命名可以使用巨集定義、型別定義。

#deine

up0x4800

/*鍵碼的巨集定義*/

typedef

struct

mem;

/*結構體變數的型別定義*/

16樓:呼新蘭騎丙

嘿嘿,你跟我有那麼一比

當初我也是成績相當不好

但是只要感興趣,絕對是學得好的。

有人說學c++之前一定要學c。

這倒不一定

但是如果直接學c++的話

之後最好再看看c

了解一下也是有好處的,

c++primer

是本好書

注意不是primer

plus

這本我沒看過

甚至你可以隨便先找本爛書看

如果你屬於很好問的人的話

你一定會有很多問題

然後再看c++primer

那樣效果會很好的

另外,多上論壇

不懂問就是

積累了一定的知識之後可以試著幫著回答別人的一些問題這樣可以加強自己對語言的理解。

有一點不同意樓上的說法

c語言是基礎,但他絕不簡單

簡單的知識語法而已

而你知道語法有什麼用呢?

就好比你知道中文的語法

你就能寫出漂亮的詩歌嗎?

答案是否定的……

語法並不太必要刻意熟記,

用多了自然就記得了

思考演算法、結構

最重要的是程式設計思想。

「物件導向」不是說說而已

如果沒理解清楚那寫出來的東西說不定就是四不象。

但是不必害怕,

雖然不簡單,但也不是難以入門。

具體的在你學的過程中是能夠慢慢體會到的。

17樓:宿夕章茶

這位網友,您好:

1.我建議您先看書吧,譚老的那本還可以,適合初學,編譯器用win-tc吧,網上搜搜

2.我推薦使用vc++6.0中文版

因為國家考試用的就是那個

當然了還有turbo

c這個也是以前國家考試用的

但是這些版本很老了

而且沒有現在的方便

對於乙個初學者來說

用老版本麻煩些比如你遇到了問題想去諮詢下別人老版本的尤其是比較經典的turbo

c2.0的

你需要把原來的**在寫一遍才行

而visusl

c++6.0的則可以用滑鼠進行複製操作

很是快捷

而且vc還有自動用不同的顏色來顯示不同型別的**對初學者來說

是個很好的糾錯功能

比如你的關鍵字打錯了

顏色是會變的

其實vc不僅適合初學者

它是大眾化的軟體

正因為它的優秀所以就適合很多人群

補充:vc不僅有6.0的版本

還有2005的2008的

為什麼還是建議你用6.0的呢

還是因為國家考級就是用的6.0的

而且很多人也在用它

我們都用這個

vc++6.0

這是微軟的乙個功能很強大的程式設計軟體,c語言、c++語言都適用,裡面有很多很好的功能是tc無法比擬的。

希望我的答案能幫到您!

謝謝你:朋友!

c語言問題,在字元陣列中查詢指定字元,若陣列中含有該字元,輸出該字元在陣列中第一次出現的

include int findch char s,char c int main include include int main void 你主要看看c的輸出輸入函式還有陣列和迴圈的配合使用版運算子等 這都是權基礎的東西 c編寫程式 在乙個字元陣列中查詢乙個指定的字元,若陣列中有蓋字元,則輸出該...

c語言除法問題,c語言中的除法怎麼算

需要把平均值,輸出的時候做一下轉換.即平均值為 1lf 然後 對應引數為 total double i c語言除法問題 在計算c語言算術表示式的結果時,特別是除法,需要注意計算過程中運算物件的資料型別轉換。相同資料型別的資料 變數進行運算,結果保持原有資料型別。當不同資料型別的資料 變數進行運算時,...

c語言的賦值問題,C語言指標的賦值問題

上面的說法中,都存在錯誤或不足.1.首先 c a b 的意義是把 a 和 b 這兩個變數的內容 5 和 6 相加得 11,再把 11 這個結果值傳送至 變數 c 所在的儲存單元儲存起來 而不是你想像的 將 a 和 b 這兩個變數組合為一個變數作為 c,或者複製一份變數組合再作為 c.當你用int a...