1樓:匿名使用者
你主函式裡m肯定還是1,func函式中的靜態變數應該是8了吧。你檢視變數值的位置是什麼樣的,如果在主函式裡檢視肯定是主函式中的m,即為1,因為發生作用域覆蓋了。你是第二次進入func後設定斷點,檢視m數值的可定為8。
由程式執行結果為8(此時i=3,m=3+1+4,因此返回值為8),17(此時i=3+8(m第二次執行值)+1,m=12+1+4=17,因此返回值為17)也可以看出來。
2樓:
邏輯錯誤。比如輸入25——
第一遍迴圈結果是top=0,bottom=6,mid=3;
第二遍迴圈結果是top=0,bottom=2(要找的數就在這個位置),mid=1;
第三遍迴圈時就沒有乙個分支是滿足條件的,進入了死迴圈……一宗邏輯錯誤的**再考察它的輸出結果是無意義的,考察也是很困難的。
3樓:
函式呼叫是不能改變實參的值得如果想要,可以將m定義為 static int m;
或者定義乙個指標用來傳遞引數。
4樓:
m是形式引數,第一次呼叫fun的時候,並不能改變m的資料雖然你在func 中將m定義為static,但這僅保證了在func函式內部m的資料僅被初始化一次
但這裡定義的m和main()中定義的m是單獨的兩個變數你去看看變數的作用域的介紹和函式引數的介紹就知道了
求教一道c語言的題目!
5樓:____年華里
c語言經典100題裡面的題目,我就直接複製吧
#include"stdio.h"
main()
求教一道c語言題,求詳細過程
6樓:奈葉炮下亡魂
#include
int main()
7樓:聽不清啊
(int)a+c%2*(int)(a+b)+(int)a+(int)b
=5+0*(。。。)+5+6=16
一道c語言題目
8樓:匿名使用者
#include
int main(void)
else
}else}}
return 0;}
9樓:戰無ko勝
|||#include
#include
int main()
if(i%2==0)
printf("a\n");
else
printf("b\n");
else if(x-y==2||y-x==2)else
return 0;
}新手上路
求教一道C語言的題目,求教一道C語言題目
while 1 你這裡輸入的是 d 所以輸入數字是正常進入了if 字元就進入了else 因為你if後面是加了break,所以能正常跳出while 1 這個死迴圈,而else你是沒有加上break的,所以是一直在while 1 死迴圈。因為你定義輸入的是 d的形式,也就是整形,所以你輸入字元型的時候,...
一道c語言題目,一道C語言題目
include include 標頭檔案 include 標頭檔案 int main int a 111 b 100 c 111 n,m,k 0,t,l 0,s scanf d d n,m srand unsigned time null srand 就是給rand 提供種子 for int i 0...
求教一道題目,求教老司機們一道題目
c語言經典100題裡面的題目,我就直接複製吧。include main 求教老司機們一道題目 分析流程 由上文可見能載以上人和物品的老司機考過a1或a3證的,能考a1證 大型載客汽車 的條件是 a3,b1,b2五年以上駕齡或者a2兩年以上駕齡 五年內無滿分記錄,年齡26 50周歲。能考a3證 城市公...