c - C 数组元素的意外结果

标签 c arrays

我试图在数组位置等于 3 时插入一个整数,但不幸的是,当我打印我的数组 a 时,我得到的结果是这样的:

   0
   0
   2

而预期的结果是:

   0
   0
   128
   0
   0

我的代码是:

#include<stdio.h>
int substitute_and_sum(int *a, int len)
{

    int sum = 0, i;
    for (i = 0; i < 5; i++)
    {
        if (i == 3)
        {
            a[i] = 128;
        }
    }

    printf("%d\n", *a);
    return 0;
}

int main()
{

    int arr[] = { 0, 0, 2, 0, 0 };
    int j = 5, i;

    for (i = 0; i < 5; i++)
    {
        substitute_and_sum(&arr[i], j);
    }
}

最佳答案

您有两个 for 循环,它们不能很好地协同工作。删除一个或另一个。例如:

int main()
{

    int arr[] = { 0, 0, 2, 0, 0 };
    int j = 5;

    substitute_and_sum(arr, j);
    for (int i = 0; i < 5; i++)
    {
        printf("%d\n", a[i]);
    }
}

请注意,我将 printf 移到了 main 中。您现有的程序很奇怪。

关于c - C 数组元素的意外结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18747855/

相关文章:

c - 在 DFS 中使用递归来解决使用 C 的逻辑游戏?

结构函数指针的编译器处理

c - 柔性 : Use Text File as Input Stream

php - 如何在 css 中使用 php 制作内容属性

c - 指向数组结构的指针

c - 读取文本文件错误C

c - 具有边缘触发事件的 epoll

c - 是否可以使用函数获取数组的长度?

c - 使用 malloc 的指针时出现奇怪的内存分配

Java 将 ASCII 值的字节数组转换为 int