C 语言程序:使用指针计算数组中 N 个整数的和


2022年2月2日, Learn eTutorial
1464

为了更好地理解,我们始终建议您学习下面列出的C语言编程基础主题

C 语言中的指针是什么?

在这个 C 语言程序中,我们需要使用**指针**的概念。**指针**是一个变量,它存储另一个变量的地址,该变量可以是任何基本数据类型。简单来说,指针可以保存变量的地址。使用指针概念,我们可以处理大值;此外,我们可以直接从函数中访问变量值,而无需返回值。

什么是动态内存分配?

在这个 C 语言程序中,我们还使用**动态内存分配**的概念,通过使用 **" a=(int *) malloc(n*sizeof(int)) "** 根据用户输入的元素数量为指针分配内存空间。

如何使用指针实现数组整数的“求和”?

我们使用一个 `for 循环`,通过将指针位置递增**一**来计算列表中所有元素的**和**,最后显示数组中元素的和。这是一个易于理解的简单 C 语言程序。我们有公式 **Sn=n(n+1)/2** 来计算“**n**”个整数的和,其中“**n**”是整数的数量。

主要逻辑是首先声明整型变量。然后声明一个指针变量“**a**”。然后将数组的大小读入“**N**”。然后使用 for 循环,通过将指针值递增 **1** 来读取数组。通过另一个 for 循环,找出所有数字的和,例如 **sum=sum + *(a+i)**。然后显示所有元素的和。

算法

步骤 1:包含头文件以在 C 程序中使用内置函数。

步骤 2: 包含头文件“**malloc.h**”以执行动态内存分配。

步骤 3: 声明整型变量 **i, n, sum**。

步骤 4: 声明指针“**a**”。

步骤 5: 将数组大小接受到 **n** 中。

步骤 6: 使用 **Malloc()** 函数动态分配内存。

步骤 7: 使用 `for 循环`,条件为“**i < n**”,读取数组元素。

步骤 8: 使用 `for 循环`,条件为“**i < n**”,计算 **sum = sum + *(a+i)**。

步骤 9: 然后显示数组中所有元素的总和为 **Sum**。

C 语言源代码

                                          #include <stdio.h>
#include <malloc.h>

void main() {
  int i, n, sum = 0;
  int * a;
  printf("Enter the size of array A\n");
  scanf("%d", & n);
  a = (int * ) malloc(n * sizeof(int)); /*Dynamic Memory Allocation */
  printf("Enter Elements of First List\n");
  for (i = 0; i < n; i++) {
    scanf("%d", a + i); /* increment the location of pointer to get next value */
  }
  for (i = 0; i < n; i++) /*Compute the sum of all elements in the given array*/ {
    sum = sum + * (a + i);
  }
  printf("Sum of all elements in array = %d\n", sum); /*display sum of the numbers in array */
} /* End of main() */
                                      

输出

Enter the size of array A
4

Enter Elements of First List
10
20
30
40

Sum of all elements in array = 100