
for(j=0;j<n-1;j++) for(i=0;i<n-j-1;i++) if(a[i]>a[i+1]) 这个什么意思??
#include<stdio.h>#include<math.h>intmain(){intn,i,j;doublea[100],k,term,sum;while(sca...
#include<stdio.h>
#include<math.h>
int main(){
int n,i,j;
double a[100],k,term,sum;
while(scanf("%d",&n)!=EOF)
{
term=0;
for(i=0;i<n;i++)
{
scanf("%lf",&a[i]);
term+=a[i];
}
for(j=0;j<n-1;j++)
for(i=0;i<n-j-1;i++)
if(a[i]>a[i+1])
{
k=a[i];
a[i]=a[i+1];
a[i+1]=k;
}
sum=term-a[0]-a[n-1];
printf("%.2lf\n",sum/(n-2));
}
return 0;
} 展开
#include<math.h>
int main(){
int n,i,j;
double a[100],k,term,sum;
while(scanf("%d",&n)!=EOF)
{
term=0;
for(i=0;i<n;i++)
{
scanf("%lf",&a[i]);
term+=a[i];
}
for(j=0;j<n-1;j++)
for(i=0;i<n-j-1;i++)
if(a[i]>a[i+1])
{
k=a[i];
a[i]=a[i+1];
a[i+1]=k;
}
sum=term-a[0]-a[n-1];
printf("%.2lf\n",sum/(n-2));
}
return 0;
} 展开
展开全部
排序嘛,从小到大排序,因为第i轮下来使得第i个大的已经好位置了,且其后面排好顺序了,
因此i < n-j,同时一轮可以确定一个数的位置,所以只要排序n-1次就可以了,所以j<n-1;
因此i < n-j,同时一轮可以确定一个数的位置,所以只要排序n-1次就可以了,所以j<n-1;
展开全部
if(a[i]>a[i+1]) 是判断a数组中当前元素是否比其后面的元素大,i代表当前元素的下标。取不同值时代表不同元素。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
冒泡排序,把第一个与第二个比,大的放在第二个位置上,在把第二个与第三个比,大的放在第三个位置上,如此往下,一直选出最大的放在最后一个位置上。然后在把看第一个到倒数第二个数用上述方法比对,一直排出从最小到最大
追问
我说的是这个for(j=0;j<n-1;j++) for(i=0;i<n-j-1;i++)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
冒泡排序法 从小到大排序
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个是冒泡排序吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询