利用指针,将整型数组a中的n个整数循环移动一个位置,即a[0]的内容放入a[1],a[1]的内容放入a[2],…,a[n-1]的内容放入a[0];n和数组a的内容均由用户输入,n不超过10。

程序运行结果示例:
Input n:8
Input 8 numbers:1 2 3 4 5 6 7 8
8 1 2 3 4 5 6 7

输入提示信息:"Input n:","Input %d numbers:"(%d为n的值)
输出格式:"%4d",所有数据输出后回车

一个实现,供参考:

#include <stdio.h>

int main(void){
    
    
    int a[10]; //因为数组的长度不超过10,所以定义数组a为11个整数长度就可以了。 
    int i;
    int n;
    printf("Input n:");
    scanf("%d",&n);

    printf("Input %d numbers:",n);
    //获取输入到数组a 
    for(i=0;i<n;i++){
        
        scanf("%d",&a[i]);
    } 
    
    
    
    int *p=a;
    int j;
    int temp=*(p+i-1);  //保存最后一个元素的位置 
    //利用指针将数组a的元素往后移动一个位置 
    for(j=i-1;j>0;j--){  //从后往前逐个复制其值,达到数组元素往后移动一个位置的目的 
        *(p+j)=*(p+j-1);
    }
    *(p+j)=temp;  //把最后一个元素移动到第一个元素 
    
    int k;    
    for(k=0;k<n;k++){
        printf("%4d",a[k]);
        
    }
    
    return 0;
} 

img