这里是一个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