c語言新手問題,求前輩指教,C語言新手,就是一點小疑問,求指教

2022-05-03 09:39:42 字數 3755 閱讀 9680

1樓:匿名使用者

for(n=1;n<=i;n++)

這一句執行的結果並不是2^0+……2^(n-1);

而是2^0+2^0+2^1+2^0……+2^0+……+2^(n-1)所以並不等於2^n-1。

這是我修改的**:

#include

#include

int main()

if(m*i<=0.01*s)

}printf("%d\n",i);

return 0;}

2樓:匿名使用者

你修改後的 for迴圈中的 s 不正確 你用了 求2的n-1次冪的加和 與 一個2的n次冪

你用2的n次冪 去 減 2的n-1次冪 正好 等於 1 所以你的結果 一直少1;

#include

#include

int text2()

if(m*i<=0.01*s)

}printf("%d\n",i);

return 0;}

3樓:

這個表示式錯了

s=0 應改為 s;

s=pow(2,n-1)+s 改為s=pow(2,i)-1;

4樓:城覺

這個有點看編譯器的,建議pow裡面的變數資料型別修改為double型,數字的話就加上小數點(如2.0)試試

5樓:匿名使用者

把這句「s=pow(2,n-1)+s;」改為「s=pow(2,n)-1;」就可以了!

你自己把演算法弄錯了!

6樓:少君同學

程式2中,s 是int 型,在計算中超出int 範圍,結果當然無法保證

初學c語言,有好多疑問,希望有經驗的前輩指教!

7樓:匿名使用者

呵呵!第一每條語句完都要有;結尾,而在;後面可以有空格也可以不要!也可以下一行!

你聯想一下你所說的!就明白了!還有因為你寫的程式入口為int main(void),所以有返回值!

返回值用return 數字看你!但還是0比較規範

8樓:

1.編譯器自動翻譯

2.跟1一樣

3.跟1一樣

4.return函式返回,0代表正常結束,其他的返回資訊不一樣(好像是,忘了)

自己查查吧,自己查,多瞭解點,這種能查出來的問題是不會有人告訴你的,我這順手寫的,也不知道對不對,學程式設計勤於動手才ok,總是想著求助別人那你不如不學了,能自己查的儘量別問,把提問的機會多留給那些可以琢磨的問題

9樓:匿名使用者

#include 就是加一個標頭檔案,至於有沒有空格還真沒有嚴格要求過,

2、我只能說書上只是想節省空間,順便教學生怎樣寫比較好看規範,一般情況下不同的內容加一行空白的容易區分,便於閱讀,跟功能沒有任何關係

3、int main(void)是說明這個mian函式是有返回型別的,返回流程就是int, 所以必須要return 個int型的出來,只要是返回 的是int型 的都可以,無論什麼數字。

剛學c語言都能看到這麼多的細節,不容易啊,好好學有前途

10樓:90後小白

1、#include 這個在#include和中間無論是有空格還是沒空格這個程式都可以執行,為什麼?

那你試試 int i,記住不要加空格你就知道了

2、#include 和下面的int main(void) {中間無論是相距幾行都可以執行這個程式,但是書上的只相距一行。

距離這麼多行,好看還是做什麼?問題問的很無聊

3、int main(void) {這個在int main(void)和{之間也是無論有沒有空格都可以執行,為什麼?

如果你寫1行**花括號佔用了100行,鬼才懶得看你的程式

4、最後結尾return 0;為什麼非要是0啊,其他的數字我試了試一樣可以執行啊??

這個是一個函式,return的值返回給主函式。

11樓:66_angel熊

第一個問題:不知道,最好別有空格。

第二個問題:相距幾行不是問題,執行的時候都是按一個算的。程式的書寫儘量要求簡潔,乾淨。

第三個問題:同第一個。

第四個問題:因題而異。我不知道你說的是哪道題。

ps:剛開始學的話,很多零碎的基礎知識是需要死記下來的,堅持著看下去,總有一天會明白的。好運。【如果想長時間的學這個的話,問問題最好找一個有關的qq群加一下,方便。】

12樓:憤怒de翔小果

第1、2、3個問題,因為有<、{、>等符號,與這些類似的符號稱為界符,當這些符號與變數名、關鍵字等在一起時編譯器是能夠清楚分開的,所以不管之間有沒有或有多少空格(回車),都會正常識別並執行,空格或回車的功能與界符類似,不論有多少同時出現,都會跳過。而敲空格或回車只是為了**美觀,方便程式設計人員識別。但是沒有界符(或運算子如+-*/)的情況下,缺少空格會使編譯器辨識而產生錯誤,如int i是定義i,inti編譯器還以為是一個變數。

至於最後一問,因為你定義了main的返回型別,就需要有個返回值,多少都行,你要問為什麼非要是0,那麼大家都return 1時,你也會問為什麼非要是1。

c語言新手,就是一點小疑問,求指教~

13樓:匿名使用者

因為你的hehe(int)函式沒有返回值,有的編譯器會使用前面呼叫的函式的返回值作為返回值

也就是print語句,在這些編譯器上,這個函式會被解釋成這樣int hehe(int n)

如果是"%d"的話,那麼hehe的返回值是1,沒有問題如果又輸出了其他的東西,那麼hehe的返回值會大於1,在while(n!=1)會形成死迴圈

14樓:匿名使用者

我電腦上沒這種情況 輸出421

15樓:

有點意思 留個位置 同求答案

c語言初學者,求大神指教

16樓:吳少春

不難,自己看書解決。

c語言問題,求指教

17樓:匿名使用者

i<41

i%4==0

f1+f2

18樓:

#include

void main()}

c語言初學者,不知道錯在**,大神求指教 20

19樓:金色潛鳥

第6行,標點符號是否有錯?逗號用了點號。

編譯器是否支援中文?

[ main() 函式 用 int 型,去掉 void 就可以了。]

20樓:小志

小子哎,水平不高,心地這麼壞。剛學走路就想害別人

c語言問題求大神指教 255

21樓:匿名使用者

c語言實現,輸入n,按1、2、3迴圈報數,報3的出局,求剩下最後一個的編號,參考**如下:

#include

#include

int main()

{ int n,i,j=-1,cnt=0;

int *a;

scanf("%d",&n);

a=(int *)malloc(n*sizeof(int));

if(a==null)return 1;

for(i=0;i

c語言求指教,C語言求指教

你的if 1,1,pig 的意義何在?你要想罵人豬直接printf pig 啊!如果pig是個變數,你要申請變數啊!c語言,求指教?main a p1 m 因為p1 m,所以p1 m的值為假,即a 0 b p1 p2 7 b 4 6 7 0 7 7 所以,答案是0和7。c語言誕生於美國的貝爾實驗室,...

C語言指標越界問題,大神指教,求c語言大神指教指標問題

p是指向int型別的指標,a為陣列首地址,這些理解都是對的,但是,p沒有被初始化 啊,你能直接是用沒有被初始化的變數嘛,那肯定是不行的啊.所以正確的做法先給p繫結堆記憶體就可以這樣寫了.include using namespace std int main p array cout p 1 end...

新手C 語言問題

printf的括號範圍錯了。printf size of int d byte n size of shot d byte n size of unsigned short d byte n size of long d byte n size of unsigned long d byte n s...