C语言矩阵问题
【问题描述】输入矩阵阶数n,给n阶矩阵的元素按行序由1到n*n顺序赋值,然后将其向右旋转90度,输出旋转后的矩阵。【输入形式】控制台输入阶数n。【输出形式】输出旋转90度...
【问题描述】输入矩阵阶数n,给n阶矩阵的元素按行序由1到n*n顺序赋值,然后将其向右旋转90度,输出旋转后的矩阵。
【输入形式】控制台输入阶数n。
【输出形式】输出旋转90度后的矩阵,其中每个数字占4位字符的宽度,向右对齐。
【样例输入】
4
【样例输出】
13 9 5 1
14 10 6 2
15 11 7 3
16 12 8 4
【样例说明】输入整数n = 4,输出旋转后的矩阵。 展开
【输入形式】控制台输入阶数n。
【输出形式】输出旋转90度后的矩阵,其中每个数字占4位字符的宽度,向右对齐。
【样例输入】
4
【样例输出】
13 9 5 1
14 10 6 2
15 11 7 3
16 12 8 4
【样例说明】输入整数n = 4,输出旋转后的矩阵。 展开
展开全部
顺时针旋转,(xa, ya) 坐标变换: xb = ya; yb = (n-1)- xa;
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char* argv[]) {
int i,j,xa,ya,xb,yb,n;
int *p,*q;
printf("输入n:");
scanf("%d", &n);
p = (int*) malloc(sizeof(int) * n*n);
q = (int*) malloc(sizeof(int) * n*n);
for (i=0;i<n;i++) {
for (j=0;j<n;j++) {
*(p+i*n+j) = i*n+j+1;
}
}
for (i=0;i<n;i++) {
for (j=0;j<n;j++) {
printf("%4d ", *(p+i*n+j));
}
printf("\n");
}
printf("\n");
//旋转90度
for (i=0;i<n*n;i++) {
xa= i/n; ya= i%n;
xb = ya; yb = n-1-xa;
*(q + xb*n+yb) = *(p+i);
}
printf("顺时针旋转90---------------------------------------------\n");
for (i=0;i<n;i++) {
for (j=0;j<n;j++) {
printf("%4d ", *(q+i*n+j));
}
printf("\n");
}
printf("\n");
free(p);
free(q);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char* argv[]) {
int i,j,xa,ya,xb,yb,n;
int *p,*q;
printf("输入n:");
scanf("%d", &n);
p = (int*) malloc(sizeof(int) * n*n);
q = (int*) malloc(sizeof(int) * n*n);
for (i=0;i<n;i++) {
for (j=0;j<n;j++) {
*(p+i*n+j) = i*n+j+1;
}
}
for (i=0;i<n;i++) {
for (j=0;j<n;j++) {
printf("%4d ", *(p+i*n+j));
}
printf("\n");
}
printf("\n");
//旋转90度
for (i=0;i<n*n;i++) {
xa= i/n; ya= i%n;
xb = ya; yb = n-1-xa;
*(q + xb*n+yb) = *(p+i);
}
printf("顺时针旋转90---------------------------------------------\n");
for (i=0;i<n;i++) {
for (j=0;j<n;j++) {
printf("%4d ", *(q+i*n+j));
}
printf("\n");
}
printf("\n");
free(p);
free(q);
return 0;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
黄先生
2024-12-27 广告
2024-12-27 广告
矩阵切换器就是将一路或多路视音频信号分别传输给一个或者多个显示设备,如两台电脑主机要共用一个显示器,矩阵切换器可以将两台电脑主机上的内容renyi切换到同一个或多个显示器上;迈拓维矩矩阵切换器种类齐全,性价比高,支持多种控制方式,为工程商采...
点击进入详情页
本回答由黄先生提供
展开全部
#include <stdio.h>
int main()
{
int n, i, j;
scanf("%d", &n);
int ** matrix = (int**)malloc(sizeof(int)*n);
for (i = 0; i < n; i++)
{
matrix[i] = (int*)malloc(sizeof(int)*n);
}
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
scanf("%d", &matrix[i][j]);
}
}
for (j = 0; j < n; j++)
{
for (i = n - 1; i >= 0; i--)
{
printf("%4d", matrix[i][j]);
}
printf("\n");
}
return 0;
}
int main()
{
int n, i, j;
scanf("%d", &n);
int ** matrix = (int**)malloc(sizeof(int)*n);
for (i = 0; i < n; i++)
{
matrix[i] = (int*)malloc(sizeof(int)*n);
}
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
scanf("%d", &matrix[i][j]);
}
}
for (j = 0; j < n; j++)
{
for (i = n - 1; i >= 0; i--)
{
printf("%4d", matrix[i][j]);
}
printf("\n");
}
return 0;
}
追问
老哥输出不对- -
追答
头文件加一个 #include
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
int main()
{
int i,j,n,sum=1,temp;
int a[10][10];
scanf("%d",&n);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
a[i][j]=sum;
sum=sum+1;
}
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("%d ",a[3-j][i]);
}
printf("\n");
}
return 0;
}
int main()
{
int i,j,n,sum=1,temp;
int a[10][10];
scanf("%d",&n);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
a[i][j]=sum;
sum=sum+1;
}
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("%d ",a[3-j][i]);
}
printf("\n");
}
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询