程序代码:
#include<stdio.h>
#define n 5
void main()
{
int a[n],i=0,j,t;
printf("请输入数字:");
for(;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(a[i]<a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
for(i=0;i<n;i++)
printf("%d ",a[i]);
int k;
k=a[0];
for(i=0;i<n;i++)
{
if(k%a[i]==0)
continue;
k=k+a[0];
}
printf("最小公倍数:%d\n",k);
int m;
m=a[n-1];
for(i=0;i<n;i++)
{
if(a[i]%m==0)
continue;
m=m-1;
}
printf("最大公约数%d\n",m);
}
但是图上显示的j=5a[j]的确分配了一个值啊
追答那j = 5是在什么时候,j只有在遍历完了最后一次判断的时候变成5,这个时候不会再进入循环,也不会有用到a[5]