社区讨论
帮菜鸟看看代码哪里出了问题吧!感激不尽
P2615[NOIP 2015 提高组] 神奇的幻方参与者 4已保存回复 5
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 5 条
- 当前快照
- 1 份
- 快照标识符
- @locso0hk
- 此快照首次捕获于
- 2023/10/30 19:06 2 年前
- 此快照最后确认于
- 2023/11/05 05:47 2 年前
不知道为什么啥也没有输出
C#include<stdio.h>
int main(){
int N,x,y,a;
int xi,yi,xo,yo;
int K = 1;
x=1; y=1;
scanf("%d",&N);
int num [99][99];
for (xi=1;xi<40;xi++){
for(yi=1;yi<40;yi++){
num[xi][yi]=0;// 把数组所有元素都设成0
}
}
num [(N+1)/2][1] = 1;//第一行中间的数设成1
while (K <= N*N ){
while (y==1 && x!=N){ //第一种情况
y=N; x++;
num [x][y]=K;
K++;
}
while (y==N && x!=1){//第2种情况
y--;x=1;
num [x][y]=K;
K++;
}
while(y==1 && x==N){//第3种情况
x--;
num [x][y]=K;
K++;
}
while(y!=1 && x!=N){//第4种情况
if(num[x+1][y-1]=0){ //右上角没有被占用
x++;y--;
num [x][y]=K;
K++;
}else{ //右上角被占用了
y++;
num [x][y]=K;
K++;
}
}
}
for (xo=1;xo<=N;xo++){//这一块用来输出结果
for(yo=1;yo<=N;yo++){
a = num[xo][yo];
printf("%d",a);
printf(" ");
}
printf("\n");
}
return 0;
}
回复
共 5 条回复,欢迎继续交流。
正在加载回复...