C语言 数组的循环移动

Python012

C语言 数组的循环移动,第1张

要求满足错误:

要求只用一个数组的方式实现,一定要保证在输出结果时,输出的顺序和数组中数的顺序是一致的。

#include<stdio.h>

int main(){

int array[100]

int m, n, i,j, tmp, distance

scanf("%d%d", &n, &m)

for (i = 0 i < n ++i)   //输入

scanf("%d", &array[i])

distance = n - m   //尾部要替换过去的值之间地址相距n-m个元素.

for (i = distance i < n ++i){   //循环移动,每次移动一个。

tmp = array[i - distance]

array[i - distance] = array[i]

for (j = i j > i - distance --j){

array[j] = array[j - 1]

}

array[i - distance + 1] = tmp

}

for (i = 0 i < n ++i){  //输出

printf("%d", array[i])

if (i != n - 1)

printf(" ")

}

printf("\n")

return 0

}

#include<stdio.h>

#define N 5

int main(){

    int i,j,m,n,a[N][N]

    printf("input m n:")

    scanf("%d%d",&m,&n)

    while(m>0)m-=N

    while(n>0)n-=N

    for(i=0i<Ni++)        

        for(j=0j<Nj++)

            a[i][j]=i*N+j+1

    for(i=0i<Ni++){        

        for(j=0j<Nj++)

            printf("%-3d",a[(N-m+i)%N][(N-n+j)%N])

        printf("\n")        

    }    

    return 0

}

input m n:1 1

25 21 22 23 24

5  1  2  3  4

10 6  7  8  9

15 11 12 13 14

20 16 17 18 19

save=x&0x……那一行,你这是多少个字节了?0x表示16进制,每两个字面字符就是一个字节,即8位,你自己数数你的。取最低为应该是与0x00000001,四个字节,刚好32位。