问答详情
源自:6-12 综合练习

6-12为什么运行失败

#include <stdio.h>

int main()

{

    int total(int arr[])

    {

        int total;

        for(int i=0;i<sizeof(arr));i++)

            total+=arr[i];

        return total;

    }

    int max(int arr[])

    {

        int max;

        for(int i=0,max=arr[0];i<sizeof(arr);i++)

            if(arr[i]>max)

            {

                max=arr[i];

            }

        return max;

    }

    int min(int arr[])

    {

        int min;

        for(int i=0;min=arr[0];i<sizeof(arr);i++)

            if(arr[i]<min)

                min=arr[i];

        return min;

    }

    int average(int arr[])

    {

        int average;

        average=total(arr[])/sizeof(arr);

    }

    void getbyorder(int arr[])

    {

        int temp;

        for(int i=0;i<sizeof(arr);i++)

        {

            if(arr[i]<arr[i+1])

                {

                    temp=arr[i];

                    arr[i]=arr[i+1];

                    arr[i+1]=temp;

                }

        }

        for(int j=0;j<sizeof(arr);j++)

        {

            printf(j);

        }

    }

    int score[N]={67,98,75,63,82,79,81,91,66,84};

    printf("总分%d",total(score));

    return 0;

}


提问者:努努lee 2018-04-22 09:13

个回答

  • 小小小_小辰
    2018-06-11 19:29:03

    不是很懂 sizeof(arr) 是计算数组长度还是什么刚刚测试了一下  不知道是我测试的样例问题还是我编译器有问题  我编译器无法直接运行题上的定义  做个参考而已

    #include"stdio.h"

    int main()

    {

    int a[]={0,1,2,3,4,5,6,7,8,9};

    int l=sizeof(a);

    printf("%d\n",l);

    }

    运行结果是 40。

  • 努努lee
    2018-04-22 20:34:01

    谢谢,这是一个问题,但还是提示错误

    hello.c: In function 'total':
    hello.c:5:29: warning: 'sizeof' on array function parameter 'arr' will return size of 'int *' [-Wsizeof-array-argument]
             for(int i=0;i


  • 慕UI7301441
    2018-04-22 18:53:51

    函数不能写在主函数内