1樓:匿名使用者
先說,我是抄的答案,感謝原作者,我只按照我對c的理解,改動了與本題相關的部分,應該能明白的說明printf函式顯示0的原因了,**測試也確實如此
1,之所以沒輸出333,這是c語言設計的原因。
2,之所以輸出0,這是計算機體系結構的問題。
具體來說:
printf函式不會進行任何型別轉換,它只是從記憶體中讀出你所提供的元素的值(按照%d,%f等控制字元提示的格式)。c語言設計中,int型別一般是32bit或者16bit,而float一般是64bit,並且有可能使用科學計數儲存。而,333在記憶體中為00000000,00000000,00000001,01001101(這是32位)。
而且333一般都在靜態區,程式的靜態儲存區預設是0,那麼當用%f來讀時,就會讀64bit,也就是會讀之前的很多位0,最後按照(有效數字)×(基數2)pow(指數)的方式來取數,自然結果是0
之所以vc中不允許這種情況,而有些編譯器就允許這麼輸出就是編譯器設定的問題。按理說,這樣訪問記憶體是屬於越界訪問,應該禁止。不過只是讀,傷害性不大而已。
2樓:匿名使用者
printf 直接將儲存的變數按所給 ××格式×× 輸出而int與float型變數儲存方式不同
(int)333 0x0000014d(float)333 0x43a68000
3樓:山水歲月
int為整形變數,float為浮點型,兩者在記憶體中儲存結構不一樣!
一道c語言程式設計題,執行結果一直是0,求大神指教 5
4樓:gta小雞
scanf的格式字串應該使用%lf%d%lf的形式,中間不要加逗號,讀入資料時以空格或回車作為分隔。格式字串中新增逗號是不好的習慣,除非特殊格式需要否則不要使用逗號。
%lf表示以double型讀入一個資料,而你對應存放資料的變數是float型,型別不匹配。將其改為double型或將%lf改為%f。
一道j**a程式設計題 為什麼輸出會是0 1 11? 30
5樓:不能算天才
這題考得很複雜。注意,子類有重寫了父類的add方法
先呼叫子類構造方法,走的super,進入父類的構造方法,對父類進行初始化,此時父親的a就為10;父類構造方法中有add,呼叫了子類的add方法(重寫)。此時,子類的a只進行了預設初始化,列印出0,再a++,列印出1。好了到這時,父類的構造方法走完了,開始對子類進行初始化了,此時子類的a進行顯示初始化變為了11。
至此子類初始化完畢
現在懂了嗎
6樓:匿名使用者
public demo()
初始化的時候,系統預設給出int的預設值0
c語言程式設計問題,為什麼輸出的值為0? 50
7樓:尋秦記記
你的計算語句是雙重迴圈,那麼列印也要是雙層迴圈,改成:
for(i= 0;i<5;i++)}
8樓:匿名使用者
i 迴圈之後,已經不在陣列的下標範圍了~
很簡單的c語言小程式設計題,結果是對的,可評分系統顯示的還是0分
9樓:匿名使用者
void fun(char* a, int n)//重新給你寫了一個 你參考一下
if(star - letter > n) //如果後面的星星大於n個則截斷字串
*(letter + n + 1) = '\0';}
10樓:
如果是******結果正確嗎?你的程式不夠健壯,用一些特殊的字串測試測試,也許就找到原因了
11樓:敗北看
字串可以從後往前遍歷,得到後面*的個數,得到的時候指標會指向最後一個字母的地址,那就可以進行新增或者刪除*了。
你的if()後面else沒有沒有,else*a='\0';}
c語言程式設計問題 這個題我**錯了輸出結果總是0
12樓:匿名使用者
略加修改即可:主要是加大括號
#include
#include
int flower(int num);
int main()
for (i = n; i <= m; i++)}printf("\n");
}if (z == 0)
printf("no\n");
return 0;
}int flower(int i)
13樓:會點技術的小子
#include
#include
int flower (int num);
int main() }
printf("\n");
}if(z==0)
printf("no\n");
return 0;
}int flower (int i)
14樓:匿名使用者
第二個else後面,for迴圈前面少個{
c語言程式設計問題,為什麼執行結果是0而不是66求詳解
15樓:時間會飛的狗
連續賦值是從右向左執行的。
不管右邊給num賦值是多少,當執行到num-=num的時候,結果都是0啊
請問這道c語言題目應該怎麼做?我的答案錯在**?為什麼輸出結果總是0?求程式設計大師解答。
16樓:欲語淚千疊
a是雙精度,
scanf("%llf",&a);
17樓:
double雙精度 用lf float 用f
18樓:小斌哥
你的main函式前沒有寫int,確定返回值型別
c 問題為什麼執行結果是這樣呢
一步步來 cin buffer 這個碰到空白 回車,空格,tab 就停止讀取,buffer就只讀到 i 這一個字元,剩下的 study opp n 留在輸入緩衝區 cout 因為緩衝區字元不到20個並且沒有結束符 所以能再次輸入 i study opp 輸入後緩衝區裡是 study opp ni s...
今天學程式設計在書中看到73結果是4這是怎麼算的
是求餘操作,它就是求2個整數的餘數的,你的解釋其實就對了,只是對這個操作的意思沒有理解好。7 3 4意思就是7除以3的餘數等於4 才是除法運算子。你好!復!1.求餘運算子號的結制果符號與被除數符號一致bai例如 30 20 結果為 10 du2.要求兩個zhi運算數必須是正數。daodouble a...
這個c的輸出結果為啥是這樣的
先執行第一個for 此時 i 0 在執行第二個for 此時 j 0 在執行第三個for 此時 k 0 結果 000 k 2後,依然滿足k 3的條件,繼續列印結果 002 k 2後,此時不滿足k 3的條件,於是跳出k的迴圈,充j的迴圈繼續往下走,而此時j已經變成了2 列印結果 020 基本原理就是這樣...