轻语y 2023-01-28 18:04 采纳率: 100%
浏览 18
已结题

解决新数组求和问题的代码出现bug

新数组求和
思考的问题是 :
牛牛学习了指针相关的知识,想实现一个 int cal(int *array,int n) 的函数求出长度为 n 的数组的和。
输入描述:
第一行输入一个正整数 n ,表示数组的长度
第二行输入 n 个正整数,表示数组中每个数字的值
输出描述:
实现 int cal(int *array,int n) 求出数组array的和。
这个问题来自于牛客网,我在写码的过程中发现,如果直接将数组及其每个元素在主函数中定义出来(也就是把数组赋完值),并执行,则可以准确算出结果;但是如果使用scanf函数,在小窗口中输入 该数组的元素总个数 和n个正整数时,则会出现无法运算的情况。
我使用 5(数组长度)和 1 2 2 2 3 这几个数进行测试的时候,发现执行结果为1;而输入 2 2 2 2 2 ,则结果为4。

#include <stdio.h>
int sum(int *c,int n);
int main()
{
    int z;//作为数组a的下标
    int a[z];
    int b;//实际参数,数组元素的数量
    int total;//数组元素相加总和
    scanf("%d",&b);//有几个 元素参加运算
    
   for(z=0;z<b;z++)
    {
        scanf("%d",&a[z]);// 给数组循环赋值
        
    }
    total = sum(a,b);//调用函数,并接受函数返回的数值
    printf("%d",total);
    return 0;
}
int sum(int *c,int n)//调用函数模块 ,数组名a将地址发给指针c,然后数组中元素的总数 是n个
{
    int sum1;//sum函数中 计算之和
    for(int i=0;i<n;i++)
    {
        sum1 = *c +  sum1;
        c++;//指针 地址加一
    }
    return sum1;
}


img

img

img

img

  • 写回答

2条回答 默认 最新

  • qzjhjxj 2023-01-28 19:19
    关注

    两处问题见注释,修改如下,供参考:

    #include <stdio.h>
    int sum(int *c,int n);
    int main()
    {
        int z;
        int a[100];  //int a[z];  数组的大小必须是常量 修改
        int b;
        int total;
        scanf("%d",&b);
        for(z=0;z<b;z++)
        {
            scanf("%d",&a[z]);
    
        }
        total = sum(a,b);//调用函数
        printf("%d",total);
        return 0;
    }
    int sum(int *c,int n)
    {
        int sum1 = 0;// int sum1;  修改 sum1需初始化
        for(int i=0;i<n;i++)
        {
            sum1 = *c +  sum1;
            c++;
        }
        return sum1;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 2月7日
  • 已采纳回答 1月30日
  • 创建了问题 1月28日

悬赏问题

  • ¥15 echarts动画效果失效的问题。官网下载的例子。
  • ¥60 许可证msc licensing软件报错显示已有相同版本软件,但是下一步显示无法读取日志目录。
  • ¥15 Attention is all you need 的代码运行
  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥30 关于<main>标签页面跳转的问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系
  • ¥30 VMware 云桌面水印如何添加