c - 如何用下面的方式显示5*5矩阵的元素?

标签 c data-structures

我想按以下方式显示5*5矩阵的输出:

输入:

1 2 3 4 5
6 7 8 9 0
1 3 5 7 9
2 4 6 8 0
1 4 3 7 0 

输出:

1 2 3 4 5 0 9 0 0 7 3 4 1 2 1 6 7 8 9 7 8 6 4 3 5

我写了下面的程序,但我无法得到像上面这样的输出。有什么错误吗?

#include<stdio.h>
int main()
{ 
    int i, j, m, n, a[5][5];
    scanf("%d%d",  & m,  & n);
    if (m >= 1 && m <= 5 && n >= 1 && n <= 5)
    {
       for (i = 0; i < m; i++)
       {
          for (j = 0; j < n; j++)
          {
             scanf("%d", a[i][j]);
          }
       }
       if (m == 5 && n == 5)
       {
          for (i = 0; i == 0; i++)
          {
             for (j = 0; j < n; j++)
             {
                printf("%d", a[i][j]);
             }
          }
          for (i = 0; i < n; i++)
          {
             for (j = n - 1; j == n - 1; j++)
             {
                printf("%d", a[i][j]);
             }
          }
          for (i = n - 1; i == n - 1; i++)
          {
             for (j = n - 2; j >= 0; j--)
             {
                printf("%d", a[i][j]);
             }
          }
          for (i = n - 2; i >= n - 4; i--)
          {
             for (j = 0; j == 0; j++)
             {
                printf("%d", a[i][j]);
             }
          }
          for (i = n - 4; i == n - 4; i++)
          {
             for (j = n - 4; j <= n - 2; j++)
             {
                printf("%d", a[i][j]);
             }
          }
          for (i = n - 3; i == n - 3; i++)
          {
             for (j = n - 2; j >= n - 4; j--)
             {
                printf("%d", a[i][j]);
             }
          }
       }
    }
    return 0;
}

最佳答案

使用

if(m>=1 && m<=5 && n>=1 && n<=5)
    {
    for(i=0;i<m;i++)
    {
    for(j=0;j<n;j++)
    {
    scanf("%d",&a[i][j]);
    }
    }

您将在屏幕上显示输出并使用

printf("%d\t",a[i][j]);

清晰地显示输出 对代码进行此更改,您没有正确循环矩阵,

 #include<stdio.h>
int main()
{ 
int i,j,m,n,a[5][5];
scanf("%d%d",&m,&n);
if(m>=1 && m<=5 && n>=1 && n<=5)
{
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
scanf("%d",&a[i][j]);
}
}
if(m==5 && n==5)
{
for(i=0;i==0;i++)
{
for(j=0;j<n;j++)
{ 
printf("%d\t",a[i][j]);
}
}
for(i=1;i<n;i++)
{
for(j=n-1;j==n-1;j++)
{
printf("%d\t",a[i][j]);
}
}
for(i=n-1;i==n-1;i++)
{
for(j=n-2;j>=0;j--)
{
printf("%d\t",a[i][j]);
}
}
for(i=n-2;i>=n-4;i--)
{
for(j=0;j==0;j++)
{
printf("%d\t",a[i][j]);
}
}   
for(i=n-4;i==n-4;i++)
{ 
for(j=n-4;j<=n-2;j++)
{
printf("%d\t",a[i][j]);
} 
} 
for(i=n-3;i<=n-2;i++)
{
for(j=n-2;j==n-2;j++)
{
  printf("%d\t",a[i][j]);
}
}
for(i=n-2;i==n-2;i++)
{
for(j=n-3;j>=n-4;j--)
{
  printf("%d\t",a[i][j]);
}
}
 for(i=n-3;i==n-3;i++)
{
for(j=n-4;j<=n-3;j++)
{
  printf("%d\t",a[i][j]);
}
}
} 
}
return 0;
}

此循环仅适用于您编码的 5*5。

关于c - 如何用下面的方式显示5*5矩阵的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22587837/

相关文章:

c - 优化数组处理循环

c - Arduino C 不进入循环?

c - 有什么办法可以在不增加变量的情况下解决这个数学问题吗?

使用数组的循环队列操作

c++ - "Multiple definition of..""First defined here"在一个数据结构的同一行

ios - 在线向结构添加数据时出错(Swift)

.net - map 和字典的实现差异

c - 如何将代码从终端重定向到绘图应用程序?

java - 将 Perl 哈希加载到 Java 中

c - 在 C 中动态加载结构体的大小