以下代碼用於按螺旋順序打印矩陣的元素。該程序正常工作。然而,問題在於,我正在檢查程序的在線編譯器不接受輸出結尾處的尾隨空格。任何人都可以給我一些想法,以瞭解如何解決輸出中添加的最後一個空白區域?刪除輸出結尾處的空格C
僅供參考,我的代碼如下(是變量名是可怕的我正在改變我的推杆隨機變量名的習慣!)
#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;
}
輸入:
1 2 3
4 5 6
7 8 9
輸出:
1 2 3 6 9 8 7 4 5{one extra space}
任何方式來解決這個問題呢? (亦作可怕的格式抱歉。在計算器上首先的問題!)
您在'printf'語句中在上述程序中添加了空格。 –
使用printf(「%d」,a [i] [j])。簡單地把空間放在之前而不是之後。您也可以使用\ b作爲退格。 – SiMemon
@dreamer是的。並且在printf語句中沒有空格的情況下,它會將輸出打印爲123698745.我確實希望保留兩者之間的空格。它最終添加的一個空間會影響編譯器。 – n0x3u5