m0_56901580 2021-05-23 22:35 采纳率: 50%
浏览 249

#include <stdio.h> int main() { int m,n,i,t; sca

#include int main() { int m,n,i,t; scanf("%d",&n); int a[n]; for(i=0;i<=n-1;i++) { scanf("%d",&m); a[i]=m; } for(i=0;i<=n-1;i++) { if(a[i]>=a[i+1]) { t=a[i+1]; a[i+1]=a[i]; a[i]=t; } } printf("%d",a[n-1]); return 0; } 以上是要求先输入一个整数n,决定接下来输入几个数。比如输入4是要求接下来输入4个数,输入n就是接下来输入n个数。然后求出这n个数中的最大值。 下面图片是带入几个数结果求不出来,[face]monkey2:053.png[/face]我看不出错误,调试调试更蒙圈了。求解答。🙏
  • 写回答

1条回答 默认 最新

  • benbenli 2021-05-23 23:36
    关注

    比较大小的循环多走了一步:for (i = 0; i <= n - 1; i++)应该到n-2就结束了,因为没有a[n]。改成如下就好了。

    #include<stdio.h>
    
    int main() {
        int m, n, i, t;
        scanf("%d", &n);
        int a[n];
        for (i = 0; i <= n - 1; i++) {
            scanf("%d", &m);
            a[i] = m;
        }
        for (i = 0; i < n - 1; i++) {
            if (a[i] >= a[i + 1]) {
                t = a[i + 1];
                a[i + 1] = a[i];
                a[i] = t;
            }
        }
        printf("%d", a[n - 1]);
        return 0;
    }
    评论

报告相同问题?