永发信息网

关于数字排列问题编程 在线等。求思路,指出我写的程序为什么错了

答案:1  悬赏:0  手机版
解决时间 2021-01-30 18:56
187
296
345
n=3;
1 12 11 10
2 13 16 9
3 14 15 8
4 5 6 7
n=4;
问题 当为n时怎么编写程序?
我的解法:(错了 不知道为什么)
#include<iostream>
using namespace std;
int main()
{
int i,j,a[50][50],n,b=n-1,c=n,d=0,x=n,y=0,k=1;
cin>>n;
for(i=0;i<n/2;i++,c--,d++)
{

if(j=d&&j<c-1)
{for(j=0;j<n;j++)
a[j][d]=k++;}
if(b=c-1&&j<c-1)
{for(j=0;j<n;j++,b--)
a[c-1][j]=k++;}
if(x=c-1&&j>d)
{for(j=0;j<n;j++,x--)
a[n-1-j][c-1]=k++;}
if(y=d&&j>d+1)
{for(j=0;j<n;j++,y++)
a[d][n-1-j]=k++;}

}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
return 0;
}
最佳答案
#include<stdio.h>
int main()
{
int i;
int j;
int k = 1;
int m;
int n;
int s[20][20];
printf("please input you want to putout results:");
scanf("%d",&n);
for(i = 1; i <= n; i++)
for(j = 1; j <= n; j++)
s[i][j] = -1;

i = 1;
j = 1;
for(m = 1; m <= n * n; m++)
{
if(k == 1)
{
if(s[i][j] == -1)
s[i][j++] = m;
else
{
i++;
j--;
k = 2;
}
}
if(k == 2)
{
if(s[i][j] == -1)
s[i++][j] = m;
else
{
i--;
j--;
k = 3;
}
}
if(k == 3)
{
if(s[i][j] == -1)
s[i][j--] = m;
else
{
i--;
j++;
k = 4;
}
}
if(k == 4)
{
if(s[i][j] == -1)
s[i--][j] = m;
else
{
i++;
j++;
m--;
k = 1;
}
}
}

for(i = 1; i <= n; i++)
{
for(j = 1; j <= n; j++)
printf("%-4d",s[i][j]);
printf("\n");
}
return 0;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
金达酒业地址在什么地方,我要处理点事
如何更改linux文件的拥有者及用户组
如何在笔记本上使用DOS命令开启WIFI热点
每个女人下面都长得一样吗
顶丰粮油地址在什么地方,我要处理点事
沈阳平安保险电销人员是双休吗
《释名》
卧瓜的意思是什么啊?知道的请说下!
绥中县公安局交警大队长是谁
晋泉高粱白酒地址在哪,我要去那里办事
co+fe3o4=fe+co2
电子游戏是一种很受年轻人喜欢的娱乐项目。下
笔算的意思是什么啊?知道的请说下!
请问xbox360上有哪些空战游戏是二战题材的,
唐三彩马价格高吗真的值几千万吗
推荐资讯
Mix舞蹈工作室地址有知道的么?有点事想过去
臣请缚一人过王而行的而是什么意思
金福来客栈(长治城区)地址在什么地方,想过去
若将3H—TdR(一种用3H标记的脱氧核苷酸)加
太行旅馆地址在哪,我要去那里办事
晚上站在阳台就看到对面门口的对联,晚上灯常
-The sports meeting will be put off next
象棋的动态图怎么制作
125单晶电池片与156单晶电池片有什么区别
中国移动宽带怎么网页连接
玲珍精美发屋地址有知道的么?有点事想过去
Qt中, int数组应该怎么转化成Byte数组?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?