#8163: 一直記憶體錯誤 來請教一下..


tinbtinb (Dawn)

學校 : 國立桃園高級中學
編號 : 27980
來源 : [39.10.127.21]
最後登入時間 :
2021-02-25 21:26:24
a414. 位元運算之進位篇 -- c910335 | From: [1.164.128.57] | 發表日期 : 2013-09-09 20:32

以下是我的程式碼
#include<cstdio>
int main(void)
{
int s;
while(scanf("%d",&s)==1)
{
int x=0,st[100000]={0};
if(s==0)
{
continue;
}
st[x]=s;
while(st[x]!=0)
{
x++;
scanf("%d",&st[x]);
}
for(int i=0;i<x;i++)
{
int a=0,count=0,tw[100]={0};
while(st[i]!=0)
{
tw[a]=st[i]%2;
st[i]/=2;
a++;
}
tw[0]+=1;
for(int i=0;i<a;i++)
{
if(tw[i]>1)
{
tw[i+1]+=tw[i]/2;
tw[i]%=2;
count++;
}
}
printf("%d\n",count);
}
}
}
別的地方跑都過,但送出解答卻顯示 記憶體區段錯誤!        
請問一下是哪裡有錯呢?
 
#8166: Re:一直記憶體錯誤 來請教一下..


a450 (要学会宽容)

學校 : 福建省福州第十九中学
編號 : 33926
來源 : [118.189.34.85]
最後登入時間 :
2016-04-05 21:29:33
a414. 位元運算之進位篇 -- c910335 | From: [120.32.95.254] | 發表日期 : 2013-09-10 19:01

 
s == 0 break;
这样呢 

 
#8167: Re:一直記憶體錯誤 來請教一下..


tinbtinb (Dawn)

學校 : 國立桃園高級中學
編號 : 27980
來源 : [39.10.127.21]
最後登入時間 :
2021-02-25 21:26:24
a414. 位元運算之進位篇 -- c910335 | From: [36.231.194.128] | 發表日期 : 2013-09-10 23:47

 
s == 0 break;
这样呢  

	if(s==0)
{
break;
}
這樣還是記憶體錯誤.. 
 
#8169: Re:一直記憶體錯誤 來請教一下..


a450 (要学会宽容)

學校 : 福建省福州第十九中学
編號 : 33926
來源 : [118.189.34.85]
最後登入時間 :
2016-04-05 21:29:33
a414. 位元運算之進位篇 -- c910335 | From: [140.224.84.37] | 發表日期 : 2013-09-11 21:23

st[x]=s;
while(st[x]!=0)
{
x++;
scanf("%d",&st[x]);
}
为什么不直接转换二进制 不知道你写的这个什么意思 

 
#8176: Re:一直記憶體錯誤 來請教一下..


tinbtinb (Dawn)

學校 : 國立桃園高級中學
編號 : 27980
來源 : [39.10.127.21]
最後登入時間 :
2021-02-25 21:26:24
a414. 位元運算之進位篇 -- c910335 | From: [61.230.228.205] | 發表日期 : 2013-09-12 18:24

st[x]=s;
while(st[x]!=0)
{
x++;
scanf("%d",&st[x]);
}
为什么不直接转换二进制 不知道你写的这个什么意思 


原本寫成 輸入就輸出 都顯示多餘輸出 才想說改成先輸入進陣列再一次輸出

這次再改成直接輸出竟然過了....  雖然還是不懂上面錯在哪

 

謝謝你回覆 

 

 
ZeroJudge Forum