
c语言编程 将一个随机输入的5*5二维数组旋转后以5行5列输出 旋转方式有4种 分别以列表的对角线旋转
12345678910111213141516171819202122232425以表格的中线旋转11-15以表格的中线旋转3-23以对角线旋转1-25和21-5这四种的...
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25 以表格的中线旋转 11-15
以表格的中线旋转 3-23
以对角线旋转 1-25 和 21-5
这四种的编程 算法 展开
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25 以表格的中线旋转 11-15
以表格的中线旋转 3-23
以对角线旋转 1-25 和 21-5
这四种的编程 算法 展开
3个回答
展开全部
#include <stdio.h>
int main()
{
int a[5][5]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25},i,j;
printf("原式\n");
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
printf("%3d",a[i][j]);
}
printf("\n");
}
printf("\n");
printf("以对角线旋转 1-25\n");
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
printf("%3d",a[j][i]);
}
printf("\n");
}
printf("\n");
printf("以对角线旋转 21-5\n");
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
printf("%3d",a[4-j][4-i]);
}
printf("\n");
}
printf("\n");
printf("以表格的中线旋转 3-23\n");
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
printf("%3d",a[i][4-j]);
}
printf("\n");
}
printf("\n");
printf("以表格的中线旋转 11-15 \n");
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
printf("%3d",a[4-i][j]);
}
printf("\n");
}
return 0;
}
输出
原式
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25
以对角线旋转 1-25
1 6 11 16 21
2 7 12 17 22
3 8 13 18 23
4 9 14 19 24
5 10 15 20 25
以对角线旋转 21-5
25 20 15 10 5
24 19 14 9 4
23 18 13 8 3
22 17 12 7 2
21 16 11 6 1
以表格的中线旋转 3-23
5 4 3 2 1
10 9 8 7 6
15 14 13 12 11
20 19 18 17 16
25 24 23 22 21
以表格的中线旋转 11-15
21 22 23 24 25
16 17 18 19 20
11 12 13 14 15
6 7 8 9 10
1 2 3 4 5
int main()
{
int a[5][5]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25},i,j;
printf("原式\n");
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
printf("%3d",a[i][j]);
}
printf("\n");
}
printf("\n");
printf("以对角线旋转 1-25\n");
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
printf("%3d",a[j][i]);
}
printf("\n");
}
printf("\n");
printf("以对角线旋转 21-5\n");
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
printf("%3d",a[4-j][4-i]);
}
printf("\n");
}
printf("\n");
printf("以表格的中线旋转 3-23\n");
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
printf("%3d",a[i][4-j]);
}
printf("\n");
}
printf("\n");
printf("以表格的中线旋转 11-15 \n");
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
printf("%3d",a[4-i][j]);
}
printf("\n");
}
return 0;
}
输出
原式
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25
以对角线旋转 1-25
1 6 11 16 21
2 7 12 17 22
3 8 13 18 23
4 9 14 19 24
5 10 15 20 25
以对角线旋转 21-5
25 20 15 10 5
24 19 14 9 4
23 18 13 8 3
22 17 12 7 2
21 16 11 6 1
以表格的中线旋转 3-23
5 4 3 2 1
10 9 8 7 6
15 14 13 12 11
20 19 18 17 16
25 24 23 22 21
以表格的中线旋转 11-15
21 22 23 24 25
16 17 18 19 20
11 12 13 14 15
6 7 8 9 10
1 2 3 4 5
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
void print(int n[5][5])
{
int i, j;
for(i = 0; i < 5; i++)
{
for(j = 0; j < 5; j++)
{
printf("%d\t",n[i][j]);
}
printf("\n");
}
}
void zx1(int n[5][5]) /*以表格的中线旋转 11-15 */
{
int i, j;
int m;
for(i = 0; i < 2; i++)
{
for(j = 0; j < 5; j++)
{
m = n[i][j];
n[i][j] = n[4-i][j];
n[4-i][j] = m;
}
}
}
void zx2(int n[5][5]) /*以表格的中线旋转 3-23*/
{
int i, j;
int m;
for(i = 0; i < 2; i++)
{
for(j = 0; j < 5; j++)
{
m = n[j][i];
n[j][i] = n[j][4-i];
n[j][4-i] = m;
}
}
}
void djx1(int n[5][5]) /*对角线1-25*/
{
int i, j;
int m;
for(i = 0; i < 5; i++)
{
for(j = i; j < 5; j++)
{
m = n[i][j];
n[i][j] = n[j][i];
n[j][i] = m;
}
}
}
void djx2(int n[5][5]) /*对角线21-5*/
{
int i, j;
int m;
for(i = 0; i < 4; i++)
{
for(j = 0; j < 4-i; j++)
{
m = n[i][j];
n[i][j] = n[4-j][4-i];
n[4-j][4-i] = m;
}
}
}
int main()
{
int n[5][5]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25};
print(n);
djx2(n);
print(n);
getch();
}
void print(int n[5][5])
{
int i, j;
for(i = 0; i < 5; i++)
{
for(j = 0; j < 5; j++)
{
printf("%d\t",n[i][j]);
}
printf("\n");
}
}
void zx1(int n[5][5]) /*以表格的中线旋转 11-15 */
{
int i, j;
int m;
for(i = 0; i < 2; i++)
{
for(j = 0; j < 5; j++)
{
m = n[i][j];
n[i][j] = n[4-i][j];
n[4-i][j] = m;
}
}
}
void zx2(int n[5][5]) /*以表格的中线旋转 3-23*/
{
int i, j;
int m;
for(i = 0; i < 2; i++)
{
for(j = 0; j < 5; j++)
{
m = n[j][i];
n[j][i] = n[j][4-i];
n[j][4-i] = m;
}
}
}
void djx1(int n[5][5]) /*对角线1-25*/
{
int i, j;
int m;
for(i = 0; i < 5; i++)
{
for(j = i; j < 5; j++)
{
m = n[i][j];
n[i][j] = n[j][i];
n[j][i] = m;
}
}
}
void djx2(int n[5][5]) /*对角线21-5*/
{
int i, j;
int m;
for(i = 0; i < 4; i++)
{
for(j = 0; j < 4-i; j++)
{
m = n[i][j];
n[i][j] = n[4-j][4-i];
n[4-j][4-i] = m;
}
}
}
int main()
{
int n[5][5]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25};
print(n);
djx2(n);
print(n);
getch();
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
#include <string.h>
void rotate1(int a[5][5]);
void rotate2(int a[5][5]);
void rotate3(int a[5][5]);
void rotate4(int a[5][5]);
void display(int a[5][5]);
int main()
{
int a[5][5];
int b[5][5];
int i,j;
int count=0;
for(i=0;i<5;i++)
for(j=0;j<5;j++)
a[i][j] = ++count;
memcpy(b,a,sizeof(a));
display(b);
printf("**** 1 *****\n");
memcpy(b,a,sizeof(a));
rotate1(b);
display(b);
printf("**** 2 *****\n");
memcpy(b,a,sizeof(a));
rotate2(b);
display(b);
printf("**** 3 *****\n");
memcpy(b,a,sizeof(a));
rotate3(b);
display(b);
printf("**** 4 *****\n");
memcpy(b,a,sizeof(a));
rotate4(b);
display(b);
return 0;
}
void swap(int *a,int *b)
{
int tmp;
tmp = *a;
*a = *b;
*b = tmp;
}
void rotate1(int a[5][5])
{
int i,j;
for(i=0;i<2;i++)
{
for(j=0;j<5;j++)
swap(&a[i][j], &a[4-i][j]);
}
}
void rotate2(int a[5][5])
{
int i,j;
for(i=0;i<2;i++)
{
for(j=0;j<5;j++)
swap(&a[j][i], &a[j][4-i]);
}
}
void rotate3(int a[5][5])
{
int i,j;
for(i=0;i<5;i++)
for(j=i+1;j<5;j++)
swap(&a[i][j], &a[j][i]);
}
void rotate4(int a[5][5])
{
int i,j;
for(i=0;i<5;i++)
for(j=0;j<5-i;j++)
swap(&a[i][j], &a[4-j][4-i]);
}
void display(int a[5][5])
{
int i,j;
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
printf("%-3d",a[i][j]);
printf("\n");
}
printf("\n");
}
#include <string.h>
void rotate1(int a[5][5]);
void rotate2(int a[5][5]);
void rotate3(int a[5][5]);
void rotate4(int a[5][5]);
void display(int a[5][5]);
int main()
{
int a[5][5];
int b[5][5];
int i,j;
int count=0;
for(i=0;i<5;i++)
for(j=0;j<5;j++)
a[i][j] = ++count;
memcpy(b,a,sizeof(a));
display(b);
printf("**** 1 *****\n");
memcpy(b,a,sizeof(a));
rotate1(b);
display(b);
printf("**** 2 *****\n");
memcpy(b,a,sizeof(a));
rotate2(b);
display(b);
printf("**** 3 *****\n");
memcpy(b,a,sizeof(a));
rotate3(b);
display(b);
printf("**** 4 *****\n");
memcpy(b,a,sizeof(a));
rotate4(b);
display(b);
return 0;
}
void swap(int *a,int *b)
{
int tmp;
tmp = *a;
*a = *b;
*b = tmp;
}
void rotate1(int a[5][5])
{
int i,j;
for(i=0;i<2;i++)
{
for(j=0;j<5;j++)
swap(&a[i][j], &a[4-i][j]);
}
}
void rotate2(int a[5][5])
{
int i,j;
for(i=0;i<2;i++)
{
for(j=0;j<5;j++)
swap(&a[j][i], &a[j][4-i]);
}
}
void rotate3(int a[5][5])
{
int i,j;
for(i=0;i<5;i++)
for(j=i+1;j<5;j++)
swap(&a[i][j], &a[j][i]);
}
void rotate4(int a[5][5])
{
int i,j;
for(i=0;i<5;i++)
for(j=0;j<5-i;j++)
swap(&a[i][j], &a[4-j][4-i]);
}
void display(int a[5][5])
{
int i,j;
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
printf("%-3d",a[i][j]);
printf("\n");
}
printf("\n");
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询