hdu 1157

    xiaoxiao2021-03-25  65

    #include<stdio.h> int sort(int a[n]) { for(int i=0;i<n;i++) for(int j=i;j<n;j++) { if(a[j]<a[i]) { int t=a[j]; a[j]=a[i]; a[i]=t; } } } int main() { int n; while(scanf("%d",&n)==1) { int a[n]; for(int i=0;i<n;i++) { scanf("%d",&a[i]); } sort(a[n]); printf("%d",a[(n+1)/2]); } return 0; } 以上是以数组为函数参数的小尝试 问题 在于数组的空间大小是个变量 不会整 于是我又尝试了冒泡排 编译错误!! #include<stdio.h> int main() { int n; while(scanf("%d",&n)==1) { int a[n]; for(int i=0;i<n;i++) { scanf("%d",&a[i]); } for(int i=0;i<n;i++) { for(int j=i;j<n;j++) { if(a[j]<a[i]) { int t=a[j]; a[j]=a[i]; a[i]=t; } } } printf("%d\n",a[(n-1)/2]); } return 0; } 我实在是搞不明白了 哪怕给我来个超时也行啊 一个c++的模板居然直接过了 #include<stdio.h> #include<algorithm> using namespace std; int a[10010]; int main() { int n; while(scanf("%d",&n)!=EOF) { for(int i=0;i<n;i++) scanf("%d",&a[i]); sort(a,a+n); printf("%d\n",a[n/2]); } return 0; } 通过看看OJ上编译错误的提示 原来是因为不能定义一个变量空间的数组 看来这个问题是逃不过了 于是本人把n变成了1000000 于是就A了。。。
    转载请注明原文地址: https://ju.6miu.com/read-35538.html

    最新回复(0)