数组作为函数参数问题!!!

机智的冰凡 2020-03-09 03:02:52
今天学了这个
然后我就想如果是n个成绩怎么求平均分 但是数组长度又不能用变量 我就在网上找到ctrl+z中断的办法 但是最后结果有问题

...全文
151 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
机智的冰凡 2020-03-09
  • 打赏
  • 举报
回复
引用 14 楼 chxchxkkk的回复:
[quote=引用 13 楼 chxchxkkk 的回复:] [quote=引用 12 楼 chxchxkkk 的回复:] 你要想求n个, n<N, 循环定义成 for(i=0; i<n; n++)就行了。哪儿能用得着CTRL+Z中断
就象前面哥们说的先要赋初值。 比如: int a[N] = {0}, n=0, sum=0;[/quote] 发段代码参考一下吧

#include <stdio.h>
#define N 100

float average(float arr[], int n)
{
    int i;
    float aver, sum = 0;
    for(i=0; i<n; i++)
    {
        sum += arr[i];
    }
    aver = sum / n;
    return aver;
}

int main()
{
    int i, n=0;
    float arr[N] = {0}, aver=0;
    printf("要求多少个人的平均分: \n");
    scanf("%d", &n);
    for(i=0; i<n; i++)
    {
        printf("输入第 %d 个人的成绩: \n", i+1);
        scanf("%f", &arr[i]);
    }

    aver = average(arr, n);
    printf("平均分= %.2f", aver);

    return 0;
}

[/quote] 今天第一次学这种在main函数外面还写一个的 没想明白为什么可以一个就写完的还要在外面加一个
chxchxkkk 2020-03-09
  • 打赏
  • 举报
回复
引用 13 楼 chxchxkkk 的回复:
[quote=引用 12 楼 chxchxkkk 的回复:] 你要想求n个, n<N, 循环定义成 for(i=0; i<n; n++)就行了。哪儿能用得着CTRL+Z中断
就象前面哥们说的先要赋初值。 比如: int a[N] = {0}, n=0, sum=0;[/quote] 发段代码参考一下吧

#include <stdio.h>
#define N 100

float average(float arr[], int n)
{
    int i;
    float aver, sum = 0;
    for(i=0; i<n; i++)
    {
        sum += arr[i];
    }
    aver = sum / n;
    return aver;
}

int main()
{
    int i, n=0;
    float arr[N] = {0}, aver=0;
    printf("要求多少个人的平均分: \n");
    scanf("%d", &n);
    for(i=0; i<n; i++)
    {
        printf("输入第 %d 个人的成绩: \n", i+1);
        scanf("%f", &arr[i]);
    }

    aver = average(arr, n);
    printf("平均分= %.2f", aver);

    return 0;
}

chxchxkkk 2020-03-09
  • 打赏
  • 举报
回复
引用 12 楼 chxchxkkk 的回复:
你要想求n个, n<N, 循环定义成 for(i=0; i<n; n++)就行了。哪儿能用得着CTRL+Z中断
就象前面哥们说的先要赋初值。 比如: int a[N] = {0}, n=0, sum=0;
chxchxkkk 2020-03-09
  • 打赏
  • 举报
回复
你要想求n个, n<N, 循环定义成 for(i=0; i<n; n++)就行了。哪儿能用得着CTRL+Z中断
ggglivw 2020-03-09
  • 打赏
  • 举报
回复
你想多了,工作中不会有人用这种方式输入。要么协议,要么配置,你最重要的是做好函数接口,知道流程如何跑的,输入这种次要的。
机智的冰凡 2020-03-09
  • 打赏
  • 举报
回复
引用 9 楼 ggglivw的回复:
你的demo自己坑自己,要输入100个成绩,前面又不初始化存成绩的数组,不能少输入几个来测试吗
我就是想如果是n个该怎么办 然后弄了个100 输几个数中间用Ctrl+z中断 输出结果每次都是这个
ggglivw 2020-03-09
  • 打赏
  • 举报
回复
你的demo自己坑自己,要输入100个成绩,前面又不初始化存成绩的数组,不能少输入几个来测试吗
ggglivw 2020-03-09
  • 打赏
  • 举报
回复
咋个可能没用,只要有初始值,最后不是除0,输出不可能那样.
机智的冰凡 2020-03-09
  • 打赏
  • 举报
回复
引用 5 楼 ggglivw的回复:
意思就是你所有的值都要初始化,你sum也没有初始化的,我以为你能发现自己剩余的问题的
我之前试过 没用...
机智的冰凡 2020-03-09
  • 打赏
  • 举报
回复
引用 3 楼 chxchxkkk的回复:
主函数中没见调用子函数。按题意应该子函数读取数组,求出平均数并返回给主函数。主函数定义数组并输入数组的值。调用子函数(传入数组)得到平均值并打印出来。
啊对 我加上去了...还是这样
ggglivw 2020-03-09
  • 打赏
  • 举报
回复
意思就是你所有的值都要初始化,你sum也没有初始化的,我以为你能发现自己剩余的问题的
机智的冰凡 2020-03-09
  • 打赏
  • 举报
回复
引用 1 楼 ggglivw的回复:
小写的n没有初始化
赋0还是这样
chxchxkkk 2020-03-09
  • 打赏
  • 举报
回复
主函数中没见调用子函数。按题意应该子函数读取数组,求出平均数并返回给主函数。主函数定义数组并输入数组的值。调用子函数(传入数组)得到平均值并打印出来。
ggglivw 2020-03-09
  • 打赏
  • 举报
回复
average没有容错性,如果n==0咋个办, 都在for里面做即可,没有必要外面获得一次[0]
ggglivw 2020-03-09
  • 打赏
  • 举报
回复
小写的n没有初始化

70,013

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧