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

大神帮我看看代码


#include <stdio.h>

void printscore(int score[n])

{

    int i;

    printf("\n");

    for(i=0;i<n;i++)

        {

            printf("%d",score[i]);

        }

    printf("\n");

}


int gettotalscore(int score[n])

{

    int sum=0;

    int i;

    for(i=0;i<n;i++)

    {

        sum+=score[i];

    }

    return sum;

}


int main()

{

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

    int sum;

    printf("总分是:%d",sum);

    return 0;

}

运行错误;还有void那一段能省略么?它为什么存在?

提问者:记川 2018-01-30 11:12

个回答

  • 慕设计5018025
    2018-03-06 16:50:27
    已采纳

    http://img4.mukewang.com/5a9e523400010d5106090514.jpg

    我的理解是:

    1. 首先你的n并没有声明和初始化;

    2. sum=gettotalscore(score[]);
      当你以数组作为参数时,是把数组名传入,即sum=gettotalscore(score);

    3. void那段可以省略,它的作用是将数组遍历输出,你如果在main函数中调用,那么就会将arr[]输出;

    4. 如若存在错误或不足,请多指教

  • 记川
    2018-01-31 10:30:32

    大哥,你的代码我也看了  我试了 能运行成功。我按照自己的想法试着修改,依旧失败。我真的很笨,你就直接告诉我问题出在哪里,定义函数,引入函数哪里错了。我后来主函数里 加了   sum=gettotalscore(score[]);

  • qq_蒙多丽渣_0
    2018-01-30 17:28:12

    #include <stdio.h>

    void printscore(int score[],int n)

    {

        int i;

        printf("\n");

        for(i=0;i<n;i++)

            {

                printf("%d\t",score[i]);

            }

        printf("\n");

    }


    int gettotalscore(int score[],int n)

    {

        int sum=0;

        int i;

        for(i=0;i<n;i++)

        {

            sum+=score[i];

        }

        return sum;

    }


    int main()

    {

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

        

    printscore( score, 10);

     printf("总分是:%d",gettotalscore( score, 10));

        return 0;

    }

    /*这是我自己改完的,void开头的函数是显示分数,,,,,,,,,,,,,,代码粘贴上就可以看结果;

    给个积分。。。。。,*/