C 程序:接受数组并使用指针交换元素


2022年12月22日, Learn eTutorial
3156

这个 C 程序演示了如何接受一个数组的元素,并使用指针交换指定位置的元素。在深入程序之前,我们需要了解更多关于 C 语言中的指针,以及如何使用指针执行数组元素的交换。

什么是指针?

指针是一种可以存储另一个变量地址的变量。以下是在程序中使用指针的步骤:

  1. 定义一个指针变量
  2. 将变量的地址分配给指针
  3. 访问指针变量中可用地址处的值

如何使用 C 语言中的指针执行数组元素的交换?

  • 首先声明数组并逐个定义所有元素。
  • 创建一个包含两个指针变量的函数(假设为 p1 和 p2)。
  • 在这个函数内部,首先创建一个临时变量,然后将 p1 指针处的值赋给这个变量。
  • 现在,p1 指针处的值与 p2 指针处的值交换。
  • 然后,p2 指针处的值更改为临时变量的值。

结果是,我们得到了在所需位置交换后的数组元素。

算法

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

步骤 2: 将数组 x[20] 声明为 float 类型,将变量 i、n、p1、p2 声明为整数类型。

步骤 3: 声明函数 swap(float *ptr1, float *ptr2)

步骤 4: 读取元素数量到变量 n 中。

步骤 5: 使用 for 循环 将数组元素读取到数组 x+i 中。

步骤 6: 现在调用函数 swap(x+p1, x+p2) 来交换 p1 元素和 p2 元素。

步骤 7: 使用 for 循环 显示结果数组 x[i]

函数 void swap(float *ptr1,float *ptr2)

步骤 1: 将变量 temp 声明为浮点型。

步骤 2: 将 temp = *ptr1。

步骤 3: *ptr1 = *ptr2。

步骤 4: *ptr2 = temp。


要在 C 语言编程中使用指针交换数组元素,我们必须学习以下概念。我们建议您学习这些概念以更好地理解。

C 语言源代码

                                          #include <stdio.h>

void main() {
  float x[20];
  int i, n,p1,p2;
  void swap(float * ptr1, float * ptr2); /* Function Declaration */
  printf("How many Elements...\n");
  scanf("%d", & n);
  printf("Enter Elements one by one\n");
  for (i = 0; i < n; i++) {
    scanf("%f", x + i);
  }
  
  printf("Enter 2 Positions for swapping\n");
  scanf("%d %d", &p1;,&p2;);
  
  swap(x + p1, x + p2); /* Function call:Interchanging p1th element by p2th */
  printf("\nResultant Array...\n");
  for (i = 0; i < n; i++) {
    printf("X[%d] = %f\n", i, x[i]);
  }
} /* End of main() */

/* Function to swap any 2 elements in the array */

void swap(float * ptr1, float * ptr2) /* Function Definition */ {
  float temp;
  temp = * ptr1;
  * ptr1 = * ptr2;
  * ptr2 = temp;
}
                                      

输出

How many Elements...
10
Enter Elements one by one
10
20
30
40
50
60
70
80
90
100
Enter 2 Positions for swapping
3
7
Resultant Array...
X[0] = 10.000000
X[1] = 20.000000
X[2] = 30.000000
X[3] = 80.000000
X[4] = 50.000000
X[5] = 60.000000
X[6] = 70.000000
X[7] = 40.000000
X[8] = 90.000000
X[9] = 100.000000