1樓:匿名使用者
r=fun((x--,y++,x+y),z--);是呼叫你定義的函式
(x--,y++,x+y)對應函式裡的第一個引數 括號裡面是三個表示式 由於c語言的運算是從右向左結合 因此有效引數為x+y=13
z--對應函式裡的第二個引數 z--是先將自身的值傳進函式 再進行自減運算 即傳進去的第二個引數為8
2樓:可憐世界
r = fun(...)
意思是r的值引用 fun函式的返回值
fun(...,...)
是指使用兩個值來進行fun函式
第一個值是(x--,y++,x+y),第二個值是z--(x--,y++,x+y)中,x先--,然後y++,然後x+yx--之後x = 5
y++之後y = 8
然後 x + y =13
所以括號裡的值為13,z-- 中,z先被fun呼叫,再減少1;
所以fun裡面,a=13,b=8;
在c語言中,其實應該儘量避免使用自增函式,除非自增函式真的能帶來很好的便利,或者其結果不會在呼叫時候引用.
因為在不同的編譯環境自增自減的操作會不同的效果.
可以進行printf來跟蹤這些變數的值,例如在fun中輸出a和b.
希望能為你解決問題
如果還有什麼不會的,可以繼續詢問.
3樓:手機使用者
最簡單的求法就是使用等差數列的求和公式,參考程式如下:
#include
int main(void)
當然,也可以使用迴圈來求解,樣例程式:
#include
int main(void)
printf("%d\n", number);
return 0;
}總體來說使用等差數列求和公式的方法速度更快,但是中間過程可能超過整形範圍,不過這個可以通過簡單地處理解決這個問題。儘管使用迴圈語句不會出現中間資料超範圍的問題,但是程式執行速度較慢
4樓:業運城誠
用結構體定義5門成績,,再在主函式裡定義個a[6],來表示6個學生,來個迴圈讀入資料,再求平時成績就好了
c語言出現了一個問題,導致程式停止正常工作,請關閉程式
5樓:
1、野指標,你使用的指標指向未知區域
2、scanf函式輸入整形、字元……的時候缺少了&
3、緩衝區溢位,也就是說你使用陣列時不經意間越界了
6樓:
零錯誤和零警告只是說明語法正確,執行過程中崩潰一般是記憶體訪問越界或者呼叫了已經釋放資源的物件,也就是傳說中的非法訪問。
7樓:
可能是指標的地方出了問題,你再檢查下關於指標的使用情況,還有用完後該釋放(free)的記憶體有沒有釋放。
C語言程式,一個C語言程式
while後面為什麼要有分號?這是一個只有控制條件而沒有控制體的迴圈。這樣的迴圈其實將控制體的內容放在了控制條件內,這樣是完全可以的。至於是前 還是後 把這個程式這樣拆分一下,就能看來了 while x 0 這樣兩個問題就都清楚了,其實那一句要表達的意思就是這麼個意思。這道題的考點就是判斷跳出後x的...
c語言程式問題高手幫忙,c語言一個程式問題 高手幫忙
c語言是由表示式組成的,a b本身就是個表示式,表示式具有值,大於號是左結合的,就是說從左向右依次比,如果大於關係成立,則這個表示式的值非零 一般是1 如果不成立則此表示式的值為0,a b c的運算順序相當於 a b c就是先求出括號內表示式的值再和c比較,如果成立,同樣還是返回1,否則是0 如果列...
求C語言問題的程式,求一個C語言問題的程式!
include stdio.h include string.h include ctype.h int invertion char ch1,char ch2,int n 原字串由形參傳給ch1,倒排後字串 目前是空串 傳給ch2,字串長度傳給n main 啊,看錯了,是單詞倒排不是整串倒排,你把...