这是一个 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 (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 循环显示数字。
#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