题目:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数。

程序分析:可以通过循环和临时变量来实现数组元素的滚动操作。

实例

#include <stdio.h>

void printArray(int array[], int n) {
    int i;
    for (i = 0; i < n; i++) {
        printf("%d ", array[i]);
    }
    printf("\n");
}

void move(int array[], int n, int offset) {
    int i;
    for (i = 0; i < offset; i++) {
        int temp = array[n - 1];
        int j;
        for (j = n - 1; j > 0; j--) {
            array[j] = array[j - 1];
        }
        array[0] = temp;
    }
}

int main() {
    int arr[20];
    int n, m;
    int i;

    printf("Total numbers: ");
    scanf("%d", &n);

    printf("Input %d numbers:\n", n);
    for (i = 0; i < n; i++) {
        scanf("%d", &arr[i]);
    }

    printf("Move offset: ");
    scanf("%d", &m);

    printf("Original array: ");
    printArray(arr, n);

    move(arr, n, m);

    printf("After moving: ");
    printArray(arr, n);

    return 0;
}

以上代码执行输出结果为:

Total numbers: 6
Input 6 numbers:
1 2 3 4 5 6
Move offset: 2
Original array: 1 2 3 4 5 6
After moving: 5 6 1 2 3 4

在上述代码中,我们定义了两个函数,printArray用于打印数组,move用于实现数组元素的滚动操作。

move函数中,我们使用一个临时变量temp来保存最后一个元素的值,然后通过循环将数组中的元素向右移动一位,最后将临时变量的值赋给第一个元素,实现了数组元素的滚动。

main函数中,我们输入了数组的大小和元素的值,然后输入滚动的偏移量,最后调用move函数进行滚动操作,并打印滚动后的数组。

请注意,输入的偏移量必须小于等于数组的大小,否则结果可能会不正确。

标签: c语言, c语言教程, c语言技术, c语言学习, c语言学习教程, c语言下载, c语言开发, c语言入门教程, c语言进阶教程, c语言高级教程, c语言面试题, c语言笔试题, c语言编程思想, c语言练习, c语言练习题