本人新手,题目不会,求大神解答

#include
int main()
{
int a[200000],b[200000];
int n=0,i=0,j=0,k=0,m=0;
scanf("%d",&n);
for(i=0;i {
scanf("%d",&a[i]);
}
for(i=0;i {
for(j=0;j {
if(a[i]>a[j]&&a[j]!=0)
{
b[k]=a[i]%a[j];
k++;
}
}
}
m=b[0];
for(i=1;i<=k;i++)
{
if(b[i]>m)m=b[i];
}
printf("%d",m);
return 0;
}
![图片说明](https://img-ask.csdn.net/upload/201703/03/1488502549_492466.png)图片说明

根据题目的意思是要找出最大的余数,所以可以使用擂台法,每次求得的余数和原有的余数做比较,如果大于原有的就更新b值
#include
int main()
{
int a[200] ,b;
int n=0,i=0,j=0,k=0,m=0;
scanf("%d",&n);
for(i=0;i {
scanf("%d",&a[i]);
}

for(i=0;i {
for(j=0;){
if(a[j]!=0&&(b {
b=a[i]%a[j];
}else{
j++;
}
}
m=b[0];
for(i=1;i {
if(b[i]>m)m=b[i];
}
printf("%d",m);
return 0;
}