C语言|魔法阵实现-创新互联
//魔方阵
#include
int main()
{
int n , i , j , num , i1 , j1;
int a[10][10];
//输入n
scanf("%d" , &n);
//将数组每个元素设置为0---判断所在位置是否有数字
for(i = 0 ; i< n ; i++)
for(j = 0 ; j< n ; j++)
a[i][j] = 0;
i = 0;
j = n/2;
num = 1;
a[i][j] = num; //将数字1放在第0行第n/2列
//对剩下的数字进行遍历
for(num = 2 ; num<= n*n ; num++){
i1 = i; //记录当前行
j1 = j; //记录当前列
//下一个位置的行与列 上一行 下一列
i--;
j++;
//如果当前行 没有上一行 那么放在第n-1行
if(i< 0) i = n-1;
//如果当前列 没有下一列 那么放在第0列
if(j >n-1) j = 0;
//如果所放位置已经有数据了 那么就放在他的同一列的下一行
if(a[i][j]){
i = i1+1;
j = j1;
}
a[i][j] = num; //把数放入数组中
}
//打印
for(i = 0 ; i< n ; i++){
for(j = 0 ; j< n ; j++)
printf("%d\t" , a[i][j]);
printf("\n");
}
return 0;
}
//魔方阵
#includeint main()
{
int n , i , j , num , i1 , j1;
int a[10][10];
//输入n
scanf("%d" , &n);
//将数组每个元素设置为0---判断所在位置是否有数字
for(i = 0 ; i< n ; i++)
for(j = 0 ; j< n ; j++)
a[i][j] = 0;
i = 0;
j = n/2;
num = 1;
a[i][j] = num; //将数字1放在第0行第n/2列
//对剩下的数字进行遍历
for(num = 2 ; num<= n*n ; num++){
i1 = i; //记录当前行
j1 = j; //记录当前列
//下一个位置的行与列 上一行 下一列
i--;
j++;
//如果当前行 没有上一行 那么放在第n-1行
if(i< 0) i = n-1;
//如果当前列 没有下一列 那么放在第0列
if(j >n-1) j = 0;
//如果所放位置已经有数据了 那么就放在他的同一列的下一行
if(a[i][j]){
i = i1+1;
j = j1;
}
a[i][j] = num; //把数放入数组中
}
//打印
for(i = 0 ; i< n ; i++){
for(j = 0 ; j< n ; j++)
printf("%d\t" , a[i][j]);
printf("\n");
}
return 0;
}
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
名称栏目:C语言|魔法阵实现-创新互联
链接分享:http://azwzsj.com/article/hdods.html