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...