這裏是一個C++程序,我試圖爲上面的問題寫。我們的老師告訴我們使用for循環。程序找到最大的公約數
void main()
int A[30],B[30],m,n,i,j,x,z;
cout<< "enter two numbers";
cin>>m>>n;
for(i=1,j=0;i<=m,j<30;i++,j++)
{
if(m%i==0)
{ A[j]=i;
z=j;
}
}
for(i=1,j=0;i<=n,j<30;i++,j++)
{
if(n%i==0)
{ B[j]=i;
x=j;
}
}
for(i=z;i>=0;--i)
{
for(j=x;j>=0;--j)
{
if(A[i]==B[j])
{ cout<<"gcd="<<A[i];
}
}
}
}
輸出顯示「輸入兩個數字:」當我輸入15和圖3,我得到的結果是閃爍的光標。通過這個程序,我意識到存儲在A和B數組中的每個數字的除數不是連續存儲的,或者是間隔的。如果內存中沒有任何內容表示A [11],那麼當您使用數字檢查另一個變量時會發生什麼?有人可以修改這個,使其工作,並告訴我什麼是錯的?我是編程新手,所以如果笨拙,請原諒我的程序。
'void main()'在諸如超出範圍索引等許多其他事情中是錯誤的。請學習如何使用調試器來檢查您的代碼。 –
'我<= m,j <30'不會做你的想法......你可能想''而不是'',' – Jarod42