怎样用C语言实现旋转

怎样用C语言实现旋转,第1张

怎样用C语言实现旋转

#include <stdio.h>团轮者

void main()

{

int M

int N

int flag=0

int num1=0

int num2=1

int i=0

int j=0

char str='A'

char Array[31][31]

printf("请输入矩阵的行M和矩阵的列N:"塌薯)

scanf("%d%d",&M,&N)

Array[0][0]=str

while(flag <M*N-1)

{

switch(num2%4)

{

case 1:

++j

if(j == N-num1-1)

{

num2++

}

break

case 2:

++i

if(i == M-num1-1)

{

num2++

}

break

case 3:

--j

if(j == num1)

{

num2++

}

break

case 0:

--i

if(i == num1+1)

{

num2++

num1++

}

break

}

if(++str == 'Z'+1)

str='A'

Array[i][j]=str

flag++

}

for(i=0i<Mi++)

{

for(j=0j<Nj++)

{

printf("桐大%c ",Array[i][j])

}

printf("\n")

}

}

下面程序的功能是将一个 3 行 4 列的数组进行逆时针旋转 90 度后输出,要求原始数组的数据随机输入,新数组以 4 行 3 列的方式输出。

主要涉及知识点:二谨绝手维数组的输入及输出、循环嵌套与二维数组的结合、输出的格式控制。

代码实现:

#include <stdio.h>

int main(){

    int a[3][4],b[4][3],i,j /*a 存放原始数组数据,b 存放旋转后数组数据*/

 宏中   printf("input 16 numbers: ")

    /*输入一组数据存放到数组 a 中,然后旋转存放到 b 数组中*/

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

        for(j=0j<4j++){

            scanf("%d",&a[i][j])

            printf("%6d",a[i][j])

            b[3-j][i]=a[i][j]

        }

        printf("\n")

    }

    printf("array b:\n")

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

        for(j=0j<3j++)

            printf("%6d",b[i][j])

        printf("\n")

 祥嫌   }

    return 0

}

#include<stdio.h>

int main()

{int i,j,t,n,a[20][20]

scanf("%d",&n)

for(i=0i<ni++)

{for(j=0j<nj++)

{a[i][j]=i*n+j+1

printf("%3d",a[i][j])

}

printf("\n"尘宽)

}

printf("\n")

for(i=0i<=n/2i++)

for(j=ij<n-i-1j++)

{t=a[i][j]

a[i][j]=a[j][n-1-i]

a[j][n-1-i]=a[n-1-i][n-1-j]

a[n-1-i][n-1-j]=a[n-1-j][i]

a[n-1-j][i]=t

}

for(i=0i<ni++)

{for(j=0j<芦缓nj++)

printf("%3d",a[i][j])

printf("\n"派哗亮)

}

return 0

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12367086.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存