以下代码用于按螺旋顺序打印矩阵的元素。该程序运行良好。然而,问题是我检查程序的在线编译器不接受输出末尾的尾随空格。谁能给我一些关于如何绕过输出中添加的最后一个空格的想法?
作为参考,我的代码如下(是的,变量名称很糟糕。我正在努力改变放置随机变量名称的习惯!!)
#include <stdio.h>
int main()
{
int a[6][6];
int i, k = 0, l = 0, m=3, n=3, j;
scanf("%d %d",&m, &n);
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
}
while (k < m && l < n)
{
for (i = l; i < n; ++i)
printf("%d ", a[k][i]);
k++;
for (i = k; i < m; ++i)
printf("%d ", a[i][n-1]);
n--;
if ( k < m)
{
for (i = n-1; i >= l; --i)
printf("%d ", a[m-1][i]);
m--;
}
if (l < n)
{
for (i = m-1; i >= k; --i)
printf("%d ", a[i][l]);
l++;
}
}
return 0;
}
Input:
1 2 3
4 5 6
7 8 9
Output:
1 2 3 6 9 8 7 4 5{one extra space}
有办法解决这个问题吗?
(也对糟糕的格式感到抱歉。StackOverflow 上的第一个问题!)
你可以放一个if
你的状况for
loops
for (i = l; i < n; ++i)
{
printf("%d", a[k][i]);
if(i < n-1)
printf(" ");
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)