1樓:刀無極啊
你的if(i=65)應該是if(i==65)吧,執行結果是。
40 div 20
60 div 20
65,end,while(i++<65),+的優先順序高,i變為21,然後接下來就是正常的迴圈判斷了,順序執行兩個if語句,也就是不管i的值是什麼,每次迴圈都要做兩次判斷是否符合兩個if語句的條件,符合就執行if語句的執行體,再往下執行程式,不符合就接著往下執行,也就是每次迴圈i的值都要經過兩個if語句判斷。
2樓:小綿羊與小排骨
兩個if是每次迴圈都走:每次執行while判斷條件後,都首先執行第乙個if,如果i%20等於0,則執行第乙個if的printf語句,然後執行第二個if語句的判斷;若第乙個if語句i%20不等於0,則跳過printf語句,執行第二個if語句的判斷。
3樓:後誨
先進迴圈,然後判斷第乙個if,滿足輸出,不滿足判斷第二個if,滿足輸出,不滿足這次迴圈就結束了。
4樓:樹大沒風
第二個if(i=65)錯了,應該是if(i ==65)修改後輸出:
20 div 20
40 div 20
60 div 20
65,end
首先進入while,先執行if(i%20 ==0) 判斷,然後執行if(i ==65)判斷。
你的程式只輸出65,end就結束了。
5樓:匿名使用者
輸出是。40 div 20
60 div 20
65 end
其實你說的兩種情況是沒多大差別的;
這兩個if按順序都會走,但是必須滿足條件才能進if的判斷裡面去!
c語言程式設計問題 5
6樓:有柴公尺呀呀呀呀
提問怎麼改。
把replace函式提到main函式外面。
提到main函式的前面。
或者在main前面寫乙個replace函式宣告宣告報告裡面呢,還寫了呼叫時的型別是衝突的。
c語言程式設計問題
7樓:貳彤雲憑懌
我解釋下遞迴函式吧:f(6)中有f(6/2)即f(3)和printf函式,但要等f(3)執行完後才執行printf函式(輸出6),f(3)中有f(3/2)即f(1)和printf函式,但要等f(1)執行完後才執行printf函式(輸出3)
8樓:粘代卉普煦
這是個遞迴問題,fun()函式在函式體內部又呼叫了自己。
具體解法可以這樣理解:
1、執行if(x/2>0)
2、若結果為真,執行fun(x/2);,後面那句printf("%d",x);暫時不執行。
3、當執行完fun(x/2)[裡面可能還包含了fun()這樣的呼叫],再執行第2步中未執行的printf("%d",x);
舉例:fun(6);
1、執行if(6/2>0)
2、由於6/2=3,所以,執行fun(6/2),即fun(3),這時,printf("%d",x=6)這句暫時不執行,等fun(3)執行完了再執行。
3、執行fun(3),這又是乙個fun()函式,所以,仍然先判斷if(3/2>0),4、顯然,3/2=1,大於0,這時,先執行fun(1/2),printf("%d",x=3)暫不執行,等fun(1/2)執行完了再執行。
5、1/2=0,所以,不符合要求,執行printf("%d",x=1);
6、這時,fun(1/2)便執行完了,接著,需要執行剛才未執行的printf("%d",x=3)
7、printf("%d",x=3)也執行完了,需要執行剛才未執行的printf("%d",x=6)
最後,得到的結果就是136
對於main0
這個是乙個判斷條件的問題。關鍵是要看這幾個符號的結合順序。
00(x<20),左邊是真,右邊是假,&&要兩邊是真,結果才是真,所以,這個表示式的結果是假,即0
c語言程式問題 20
9樓:宣麗益香春
num被編譯成(m+1)*m/2
m被編譯成n+1
即num是:
(n+1+1)*n+1/2,而n被編譯為2,那麼num的結果為8;編譯巨集僅僅只是替換,要想正確最好加上括號!
10樓:匿名使用者
自己嘗試才能學到知識。。。
c語言程式設計問題
11樓:手機使用者
解題思bai路:完全跟百錢買百雞的問題是du一樣的!設大zhi馬,中馬,小馬dao的匹数分別為x,y,z;可以得到回兩個方程:
x+y+z=100; 3*x+2*y+z/2=100; 將第二個。
答方程變形為:6*x+4*y+z=200; 從第二個方程變形的方程中,我們可以看到,x的最大值為200/6=;即中馬,小馬都不用,只用大馬最多用34;1<=x<=34; 同樣中馬y的最大值為200/4=50;1<=y<=50;再將第三個方程減去第一方程變成5*x+3*y=100;這個方程就是我們簡化後的判斷條件用列舉法求可的如下的程式:
#include
int main()}
c語言程式問題
12樓:匿名使用者
你理解錯了,文中是說將【密文】字元【位置】也就是s1-sn連成乙個環。
當key =3
加密方法是,把原文的第乙個字元c1(也就是't')放入密文第三個位置s3,從環中去掉s3位置,繼續數3個位置到s6,將c2放入s6也就是'h'放在第6個位置。
以此類推、、、
你疑問剛好是弄反了,未加密的連成的環。
如果樓主有空的話,把你蒐集的關於加密的文獻發點,正想看看,先謝過 了。
c語言程式結果
13樓:匿名使用者
r=func((x--,y++,x+y),z--)
可以寫成:x--;
y++;r=func(x+y,z);
z--;所以結果是func(13,8)的返回值21
14樓:盟軍丿安靜
答案是21。
z--是後置運算,所以傳到fuc函式中z的值不變,是8,。
(x--,y++,x+y) 這部分的值是13,在這裡,x--,y++也是後置運算,但可以忽略,因為後邊的x+y。無論是否運算x--與y--,x+y的值都不會改變,是13。
這樣,fuc函式中a=13,b=8。計算a+b就是21了。
因此最後輸出21.
15樓:網友
**親測,輸出結果為21,要是不懂為什麼是21再繼續追問,要是純粹只為答案,那vc編譯器的話,結果結對是21
c語言程式設計疑問
16樓:匿名使用者
(1):此處你的printf函式中的雙引號寫錯了,應是英文狀態下的雙引號,而你寫成了乙個單引號和乙個雙引號。
(2)和(5):在這裡我要說的是你要輸出20行楊輝三角形是不行的,因為int型資料的最大值為32767不夠用,應換成浮點型,即實型。
(3)和(4)處有乙個很大的問題,你的第二個for語句的所屬句只有一行,也就是說(2)處的printf函式是等(3)處的for語句迴圈完才輸出,即每行只輸出乙個值。應把(2)和(2)的上一句用花括號括起來。
(4)處把m值初始化為1,n值初始化為0則會出現這樣乙個結果,第一行輸出兩個數。因為一開始當m=1時 n=0和n=1會輸出在一行。因此應把m值初始化為0
如下:#include ""
float fun(int x)
{int y;
if(x==0||x==1)
y=1;else
y=x*fun(x-1);
return(y);
main()
{int m,n;
float s;
for(m=0;m<10;m++)
{for(n=0;n<=m;n++)
{s=fun(m)/(fun(n)*fun(m-n));
printf("%s);
printf(""
c語言程式問題,c語言程式設計問題
記憶體不能為written就是說,你往不該寫的地方寫了東西,很明顯char s3沒有分配空間,這是指標運用的常見錯誤,include include main 這樣就ok了,嘻嘻 我也不知道為什麼要這樣。s3沒有分配記憶體。都是胡說八道。s3 null char s1 12345 s2 1234 s...
C程式問題,c語言程式設計問題
把頭檔案改下,再把輸入輸出改下就可以了,不好意思我用手機給你會答的改起來很麻煩。cin改成csanf,cout改成printf,具體怎樣你按相關寫法改就行了。c語言程式設計問題 5 提問怎麼改。把replace函式提到main函式外面。提到main函式的前面。或者在main前面寫乙個replace函...
c語言程式設計問題,C語言程式設計問題
include void main else if b 由於b 1,所以 b的值為false,所以不進入else if b else printf d d d 由於d的值沒有改變,輸入初始值d 20 include main include main else if b 此時b 1,b 0為假els...
C語言簡單程式設計問題,C語言程式設計問題
接收字串要用gets c 不然只要接收到空格就停止了顯示字串長度可以用printf 5d strlen c 在前面包含 顯示字串要用puts c 函式 for迴圈的範圍沒有包括下面if c i a c i a include include define f 99 void main printf ...
c語言程式輸出結果有,C語言程式輸出結果有
第七行 scanf d p 中多了個空格。if x j x k 應該改成if x j x k 一般結果出現隨機數是因為指標或者所要輸出的結果不是所指的記憶體塊,指向任意地方的結果。if i m n 改為if i m把int t 10,d 10,m,n 改成int t 10,d 10,m 0,n 在c...