構造結構體的時候初試過len了。用一個自增的回圈后len自己會不停的變。剛才還是1,在放上去就變成了11,接著20……這是什么問題,望大神解答
uj5u.com熱心網友回復:
結構體的定義是怎樣的你得弄出來呀uj5u.com熱心網友回復:
看你的帖子扭的脖子疼,能不能直接發代碼呢?不截圖uj5u.com熱心網友回復:
大整數運算那里的代碼
struct bign{
int d[1000],len;
bign(){
memset(d, 0, sizeof(d);)
len=0;
}
}
uj5u.com熱心網友回復:
而且我發現只要除錯回圈體內的自增變數就會出現這種情況,不知道什么原因
uj5u.com熱心網友回復:
int main(){int a[10]={0}, k=0;
while(k<10){
a[k++]=5;
}
for(int i=0; i<10; i++){
printf("%d ", a[i]);
}
return 0;
}
比如這個,我想讓a陣列10個元素都是5,直接編譯輸出是對的,經過除錯確實錯的(除錯時k的取值會不斷變化,第一次放上去是1?不應該是0嗎?第一次直接變為3了。可我沒有讓回圈進行下去啊,只是單純的想查看k的值)
uj5u.com熱心網友回復:
int main(){
int a[10]={0}, k=0;
while(k<10){
a[k++]=5;
}
for(int i=0; i<10; i++){
printf("%d ", a[i]);
}
return 0;
}
比如這個,我想讓a陣列10個元素都是5,直接編譯輸出是對的,經過除錯確實錯的(除錯時k的取值會不斷變化,第一次放上去是1?不應該是0嗎?第一次直接變為3了。可我沒有讓回圈進行下去啊,只是單純的想查看k的值)
第一次k是0,其實是a[k++] = 5;可以分解為:a[k] = 5; k++;運行也是這么分解運行的。
uj5u.com熱心網友回復:
那我放在k上,為什么經過一段時間k的值會變化?我不除錯結果沒問題,除錯的時候這樣結果就會變。uj5u.com熱心網友回復:
int main(){
int a[10]={0}, k=0;
while(k<10){
a[k++]=5;
}
for(int i=0; i<10; i++){
printf("%d ", a[i]);
}
return 0;
}
比如這個,我想讓a陣列10個元素都是5,直接編譯輸出是對的,經過除錯確實錯的(除錯時k的取值會不斷變化,第一次放上去是1?不應該是0嗎?第一次直接變為3了。可我沒有讓回圈進行下去啊,只是單純的想查看k的值)
第一次k是0,其實是a[k++] = 5;可以分解為:a[k] = 5; k++;運行也是這么分解運行的。
是不是不能查看k的值,因為查看一次k就變化一次,嚴重影響我的最終結果
uj5u.com熱心網友回復:
int main(){
int a[10]={0}, k=0;
while(k<10){
a[k++]=5;
}
for(int i=0; i<10; i++){
printf("%d ", a[i]);
}
return 0;
}
比如這個,我想讓a陣列10個元素都是5,直接編譯輸出是對的,經過除錯確實錯的(除錯時k的取值會不斷變化,第一次放上去是1?不應該是0嗎?第一次直接變為3了。可我沒有讓回圈進行下去啊,只是單純的想查看k的值)
第一次k是0,其實是a[k++] = 5;可以分解為:a[k] = 5; k++;運行也是這么分解運行的。
你說的這個步驟我是明白的,先讓a[k取值]5,然后k++。除錯的時候我放在k上,k會不停地變化怎么解?假如我的最終結果不正確,我想看看哪里出錯了,放到k上,k變一個數,再次放k又變。比如i=0時,第一次k是0,我在放到k上,k變成了1,那么i=0時,就成了a[1]=5,這樣最后成了a[10]=5
uj5u.com熱心網友回復:
http://blog.csdn.net/zhao4zhong1/article/details/53078924 老司機找bug的十年心路歷程uj5u.com熱心網友回復:
從你的表述中看到應該是你那邊編譯器的問題嘍!換個編譯器。驗證代碼沒問題只要是給定指定輸入能達到期望的輸出就可以了。
看一下你第一張圖就是個大位數加法的演算法,再加你的這個結構體定義。
我好像在《程式員的數學思維》這本書上有看到過。
uj5u.com熱心網友回復:
這個軟體不行,我也這樣uj5u.com熱心網友回復:
沒用過dev.想說一句vs是宇宙第一編譯器
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/29363.html
標籤:C語言
上一篇:多執行緒的資料安全問題
