fangfei1314 2022-01-01 21:00 采纳率: 77.8%
浏览 23
已结题

关于#c语言#的问题:问题遇到的现象和发生背景

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果
#include <stdio.h>
int max,min;
int s(int n)
{   int *p,a[n],sum=0;
    float avg;
    max=a[0];
    min=a[0];
    for(p=a;p<a+n;p++)
    {    scanf("%d",p);
        sum=sum+*p;
        if(min>*p)
            min=*p;
        if(max<*p)
            max=*p;
    }
    avg=sum/n;
    return avg;
}
main()
{   int b;
    float avg;
    printf("请输入数组长度:\n");
    scanf("%d",&b);
    avg=s(b);
    printf("%f\n",avg);
    printf("%d\n",max);
    printf("%d",min);
}
为什么数组长度不同 有的时候是最大值正确,最小值错误 有时候却是最大值错误,最小值正确
  • 写回答

2条回答 默认 最新

  • 书山客 2022-01-01 21:12
    关注
    
    #include <stdio.h>
    int min=1000000, max=-1000000;
    int s(int n)
    {
        int* p, a[1024], sum = 0;
        float avg;
        //max = a[0];
        //min = a[0];
        for (p = a; p < a + n; p++)
        {
            scanf("%d", p);
            sum = sum + *p;
            if (min > *p)
                min = *p;
            if (max < *p)
                max = *p;
        }
        avg = sum / n;
        return avg;
    }
    void main()
    {
        int b;
        float avg;
        printf("请输入数组长度:\n");
        scanf("%d", &b);
        avg = s(b);
        printf("%f\n", avg);
        printf("%d\n", max);
        printf("%d", min);
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月9日
  • 已采纳回答 1月1日
  • 创建了问题 1月1日