下面两段代码
//PAT1070V1
#include <stdio.h>
int main(){
int n,j,i,tmp;
scanf("%d",&n);
int a[n];
double s=0;
for(i=0;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]){
tmp=a[j];
a[j]=a[i];
a[i]=tmp;
}
}
}
// s=a[0];
for(i=0;i<n;i++){
s=(double)s/2+(double)a[i]/2;
}
printf("%d",(int)s);
}
和
//PAT1070V1
#include <stdio.h>
int main(){
int n,j,i,tmp;
scanf("%d",&n);
int a[n];
double s=0;
for(i=0;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]){
tmp=a[j];
a[j]=a[i];
a[i]=tmp;
}
}
}
s=a[0];
for(i=1;i<n;i++){
s=(double)s/2+(double)a[i]/2;
}
printf("%d",(int)s);
}
有什么区别,只在最后的for循环部分略有差异,但是AC时测试点1却通过不了