程序运行后输出结果是

#include <stdio. h>
void fun(int *a, int n)
{ int i,j,k,t;
for (i=0;i<n-1;i+=2)
{k=i;
for(j=i;j<n;j+=2) if(a[j]>a[k]) k=j; 这里 刚开始是单数互换,直到1与3互换,然后k=j,1与5互换,是不是这样?内循环完,退出内循环,又直接开始for (i=0;i<n-1;i+=2)这个循环的吗? 看不懂?
t=a[i]; a[i]=a[k]; a[k]=t; }
main()
{ int aa[10]={1,2,3, 4,5,6, 7} , i;
fun (aa, 7);
for(i=0;i<7;i++)
printf(“%d”,aa[i]);
printf(“\n”); }

没有大括号的循环一般只包含一条语句,下面的交换语句是外层循环一轮结束后进行的

k应该代表的是奇数的最大值的下标,
如果a[j]>a[k], k=j;依次比较的下标是 0 2 4;
下标从0开始的;内循环结束后,又直接开始for (i=0;i<n-1;i+=2)这个循环
望采纳,代码有些语法错误,还需要修改