阿泽糖棠 2021-09-24 16:27 采纳率: 100%
浏览 59
已结题

数字旋转方阵的有条件输入

对于数字旋转方阵可以进行一圈输入为数字一圈输入为0交叉互换输入。以此为基础进行c++代码编写但是运行结果要么为纯数字要么全为0??这是为什么呢??
#include<stdio.h>
#define N 10
int data[N][N]={0};

void Full(int number,int begin,int size)
{
int i,j,k;
if(size==0) return;
if(size==1){
data[begin][begin]=number;
return;
}
i=begin;j=begin;
if((size%2)==1){
for(k=0;k<size-1;k++)
{
data[i][j]=number;
number++;
i++;
}
for(k=0;k<size-1;k++)
{
data[i][j]=number;
number++;
j++;
}
for(k=0;k<size-1;k++)
{
data[i][j]=number;
number++;
i--;
}
for(k=0;k<size-1;k++)
{
data[i][j]=number;
number++;
j--;
}
}
else{
number=0;
for(k=0;k<size-1;k++)
{
data[i][j]=number;
i++;
}
for(k=0;k<size-1;k++)
{
data[i][j]=number;
j++;
}
for(k=0;k<size-1;k++)
{
data[i][j]=number;
i--;
}
for(k=0;k<size-1;k++)
{
data[i][j]=number;
j--;
}
}
Full(number,begin+1,size-2);
return;
}

void OutPrint(int size)
{
int i,j;
for(i=0;i<size;i++){
for(j=0;j<size;j++)
{
printf("%4d",data[i][j]);
}
printf("\n");
}
}

int main()
{
int n;
printf("输入方阵阶数(小于10):\n");
scanf("%d",&n);
Full(1,0,n);
OutPrint(n);
return 0;
}

  • 写回答

1条回答 默认 最新

  • CSDN专家-link 2021-09-24 16:51
    关注

    Full(number,begin+1,size-2);
    ---你这里size每次减去2,然后判断的时候用size%2==1
    每次减去2,那么每次递归的size要么一直是奇数,要么一直是偶数,没有实现奇偶交叉啊

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 10月2日
  • 已采纳回答 9月24日
  • 创建了问题 9月24日

悬赏问题

  • ¥20 要做柴油机燃烧室优化 需要保持压缩比不变 请问怎么用AVL fire ESE软件里面的 compensation volume 来使用补偿体积来保持压缩比不变
  • ¥15 算能的sail库的运用
  • ¥15 'Content-Type': 'application/x-www-form-urlencoded' 请教 这种post请求参数,该如何填写??重点是下面那个冒号啊
  • ¥15 找代写python里的jango设计在线书店
  • ¥15 请教如何关于Msg文件解析
  • ¥200 sqlite3数据库设置用户名和密码
  • ¥15 AutoDL无法使用docker install吗?
  • ¥15 cups交叉编译后移植到tina sdk的t113,只需要实现usb驱动打印机,打印pdf文件
  • ¥30 关于#wireshark#的问题:需要网络应用流量数据集需要做长度序列的实验,需要与应用产生的会话的数据包的长度,如视频类或者聊天类软件
  • ¥15 根据上述描述表示泥浆密度沿着管路的长度方向在不断变化,如何来表示泥浆密度随管路的变化(标签-matlab|关键词-流计算)