为什么不出结果能看下哪里出错了嘛

代码如下:

img


输出结果:

img


就是不出正确的结果,题目是从10个数中,求出最大数和最小数。

  1. 根据程序输出可以判定为没有初始化变量,才会输出这种异常数字,我认为是main()函数中的max和min为局部变量和函数s中的变量无法互通.
  2. 代码变量名与函数名重复,图中代码没有调用函数s.
    在基础上的一种可行代码:
    #include<stdio.h>
    void s(int array[], int n);
    int max, min; // 全局变量
    int main() {
     int i, number[10];
     printf("enter 10 integer number:\n");
     for (i = 0; i < 10; i++)
     {
         scanf("%d", &number[i]);
     }
     s(number, 10);
     printf("max=%d\n,min=%d\n", max, min);
    }
    void s(int array[], int n)
    {
     int* p, * array_end;
     array_end = array + n;
     max = *array;
     min = *array;
     for (p = array + 1; p < array_end; p++)
     {
         if (*p > max)
             max = *p;
         else
         {
             if (*p < min)
                 min = *p;
         }
     }
    }
    

img

怎么说呢,我觉得很多地方错了,继续努力吧