|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
题目链接:https://ac.nowcoder.com/acm/contest/19306/1026?&headNav=acm- #include <bits/stdc++.h>
- using namespace std;
- int a[22][22];
- int main()
- {
- int n,s=1,r=1,l=1,now=2;
- a[l][r]=1;
- cin>>n;
- while(now<=n*n)
- {
- while(a[l][r+1]==0&&r+1<=n)
- {
- a[l][r++]=now++;
- }
- while(a[l+1][r]==0&&l+1<=n)
- {
- a[l++][r]=now++;
- }
- while(a[l][r-1]==0&&r-1>=0)
- {
- a[l][r--]=now++;
- }
- while(a[l--][r]==0&&l-1>=0)
- {
- a[l--][r]=now++;
- }
-
- }
- for(int i=1;i<=n;i++)
- {
- for(int j=1;j<=n;j++)
- {
- cout<<a[i][j]<<" ";
- }
- cout<<endl;
- }
-
-
-
- }
复制代码
指正哪个地方错了,输出哪个4到5 的时候不是有一个空格吗,那个位置该怎么解决呢
在这段代码中,输出4和5之间缺少了一个空格的问题可以通过在输出数字后判断是否为最后一个数字,如果不是则输出一个空格来解决。具体代码实现如下:
- for(int i=1;i<=n;i++)
- {
- for(int j=1;j<=n;j++)
- {
- cout<<a[ i][j];
- if(j!=n) // 判断是否为最后一个数字
- cout<<" "; // 如果不是最后一个数字,则输出一个空格
- }
- cout<<endl;
- }
复制代码
|
|