永发信息网

一道计算机二级改错题

答案:1  悬赏:30  手机版
解决时间 2021-05-24 16:15
  • 提问者网友:太高姿态
  • 2021-05-24 03:33

#include<stdio.h>
#include<conio.h>
#define M 10

void swap(int *x,int *y)
{ int t;
t=*x;*x=*y;*y=t;
}

void change(int a[][M],int n)
{ int i,j,c;
for(i=0;i<n/2;i++)
for(j=n/2+1;j<n;j++)
swap(&a[i][j],&a[i+n/2+1][j-n/2-1]);
}

void print(int a[][M],int n)
{ int i,j;
printf("\n");
for(i=0;i<n;i++)
{ for(j=0;j<n;j++) printf("%5d",a[i][j]);
printf("\n");
}
}

void main()
{ int a[M][N],i,j,n=0;
printf("\nINPUT N(N<10):");
scanf("%d",&n);
if(n>=10||n%2==0)
{ printf("can't do it");getch();return;}
for(i=0;i<n;i++)
for(j=0;j<n;j++) a[i][j]=i*n+j;
print(a,n); change(a,n);
print(a,n); getch();
}

最佳答案
  • 五星知识达人网友:梦中风几里
  • 2021-05-24 04:53
#include<stdio.h>
#include<conio.h>
#define M 10
void swap(int *x,int *y)
{ int t;
t=*x;*x=*y;*y=t;
}
void change(int a[][M],int n)
{ int i,j,c;
for(i=0;i<n/2;i++)
for(j=n/2+1;j<n;j++)
swap(&a[i][j],&a[i+n/2+1][j-n/2-1]);
}
void print(int a[][M],int n)
{ int i,j;
printf("\n");
for(i=0;i<n;i++)
{ for(j=0;j<n;j++) printf("%5d",a[i][j]);
printf("\n");
}
}
void main()
{ int a[M][M],i,j,n=0;
printf("\nINPUT N(N<10):");
scanf("%d",&n);
if(n>=10||n%2==0)
{ printf("can't do it");getch();return;}
for(i=0;i<n;i++)
for(j=0;j<n;j++) a[i][j]=i*n+j;
print(a,n); change(a,n);
print(a,n); getch();
}



我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯