c语言,for (j=i+1; j<n; j++)这句什么意思?求解释。

题目:函数fun功能:把形参a所指数组中的最大值放在a[0]中,接着求出a所指数组中的最小值放在a[1]中,再把a所指数组元素中的次最大值放在a[2]中,把a数组元素中的... 题目:函数fun功能:把形参a所指数组中的最大值放在a[0]中,接着求出a所指数组中的最小值放在a[1]中,再把a所指数组元素中的次最大值放在a[2]中,把a数组元素中的次小值放在a[3]中,以此类推。
答案:
void fun(int a[], int n)
{ int i ,j ,max ,min, px, pn, t;
for ( i=0; i< n-1 ; i+=2)
{ max=min=a[i];
px=pn=i;
for (j=i+1; j<n; j++)
{ if (max < a[j] )
{ max = a[j] ; px = j ; }
if (min > a[j])
{ min = a[j] ; pn = j ; }
}
if ( px ! = i)
{ t = a[i]; a[i] = max ;
a[ px ] = t ;
if (pn == i) pn = px;
}
if (pn ! = i+1)
{ t=a[i+1]; a[ i + 1] = min ;
a[ pn] = t ; }
}
}
问:
1、void fun(int a[], int n)中 a[]换成*a对么?为什么?
2、for ( i=0; i< n-1 ; i+=2)为什么是i+=2而不是+1?
3、for (j=i+1; j<n; j++)这句什么意思?求解释。
4、int i ,j ,max ,min, px, pn, t字母各代表什么?
5、求整段解释。
展开
 我来答
lgao622
2012-08-14 · 知道合伙人软件行家
lgao622
知道合伙人软件行家
采纳数:1137 获赞数:6550
毕业于武汉工程大学邮电与信息工程学院通信专业,软件行业,4年工作经验。

向TA提问 私信TA
展开全部
void fun(int a[], int n)
{ int i ,j ,max ,min, px, pn, t;
for ( i=0; i< n-1 ; i+=2)
{
max=min=a[i];
px=pn=i;
for (j=i+1; j<n; j++) ////查找a[i]到a[n-1]中的最大最小值
{ if (max < a[j] )
{ max = a[j] ; px = j ; }//最大值放在max, px放最大值的下脚标
if (min > a[j])
{ min = a[j] ; pn = j ; }//最小值放在min, pn放最小值的下脚标
}
if ( px ! = i)//如果最大值不是此次a[i]的位置,便互换位置
{ t = a[i]; a[i] = max ;
a[ px ] = t ;
if (pn == i) pn = px;//如果最小值是此次a[i]的位置,更新pn中的脚标,因为px换到a[i]了
}
if (pn ! = i+1)//如果最小值不是此次a[i+1]的位置,便互换位置
{ t=a[i+1]; a[ i + 1] = min ;
a[ pn] = t ; }
}
}
1、void fun(int a[], int n)中 a[]换成*a对么?为什么?
可以,a[]可表示指针
2、for ( i=0; i< n-1 ; i+=2)为什么是i+=2而不是+1?
每次查找最大、最小值,占2个位置,即a[i]、a[i+1]
3、for (j=i+1; j<n; j++)这句什么意思?求解释。
查找a[i]到a[n-1]中的最大最小值
4、int i ,j ,max ,min, px, pn, t字母各代表什么?
i,j做循环用
max a[i]到a[n-1]中的最大值,px为其下脚标
min a[i]到a[n-1]中的最小值,pn为其下脚标
t 中间互换时的变量
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式