C 程序循环置换数组元素


2022 年 3 月 30 日, 学习电子教程
1860

什么是循环置换?

这是一个 C 程序,用于循环置换数组元素。一个循环置换是将某个子集“s”中的元素以循环方式相互映射的置换,同时使“x”的所有不同组件保持不变(即映射到自身)。例如,{1, 2, 3, 4} 的置换将 1 映射到 3,3 映射到 2,2 映射到 4,4 映射到 1,这是一个循环。而将 1 映射到 3,3 映射到 1,2 映射到 4,4 映射到 2 的置换则不是(它独立置换了集合 {1, 3} 和 {2, 4})。

这个 C 程序的逻辑是,首先使用 for 循环将数字的限制读入“n”,然后将数字读入数组“number[]”。然后使用 for 循环将数组的每个元素的位置更改到下一个位置。然后使用 for 循环显示置换后的数字,即数组 number[] 中的数字。

for 循环的语法是什么?

for 循环的语法是


for (initializationStatement; testExpression; updateStatement)

     {
          // codes
     }

在这里,初始化语句只执行一次。最初,我们评估测试表达式。如果测试表达式为 false,我们将终止循环。但如果测试表达式为 True,我们将执行 for 循环语句并递增表达式。这个过程一直持续到测试表达式为 False。当迭代次数已知时,通常使用这种类型的循环。

算法

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

步骤 2:声明一些整型变量 i, n 和数组 number[30]

步骤 3:n 的值读入“n”。

步骤 4:使用 for 循环将数字读入数组 number。

步骤 5:赋值 number[n]=number[0]

步骤 6:使用另一个带条件 'i' 的 for 循环

步骤 7:将 'i' 递增 1,并执行步骤 6。

步骤 8:使用 printf 显示“循环置换的数字如下所示”。

步骤 9:使用 for 循环显示数字。

C 语言源代码

                                          #include <stdio.h>

void main() {
  int i, n, number[30];
  printf("Enter the value of the n = ");
  scanf("%d", & n);
  printf("Enter the numbers\n");
  for (i = 0; i < n; ++i) {
    scanf("%d", & number[i]);
  }
  number[n] = number[0];
  for (i = 0; i < n; ++i) {
    number[i] = number[i + 1];
  }
  printf("Cyclically permuted numbers are given below \n");
  for (i = 0; i < n; ++i)
    printf("%d\n", number[i]);
}
                                      

输出

Enter the value of the n = 5
Enter the numbers
10
30
20
45
18

Cyclically permuted numbers are given below
30
20
45
18
10