小程序

    技术2022-05-20  53

    改变矩阵中心及四角

    #include<stdio.h>#include<malloc.h>

    void Change(int **p,int n){ int temp; if(p[0][0]<p[0][1]) {  temp=p[n/2][n/2];  p[n/2][n/2]=p[n-1][n-1];  p[n-1][n-1]=temp;

      temp=p[0][n-1];  p[0][n-1]=p[0][1];  p[0][1]=temp;

      temp=p[n-1][0];  p[n-1][0]=p[0][2];  p[0][2]=temp;

      temp=p[n-1][n-1];  p[n-1][n-1]=p[0][3];  p[0][3]=temp; } else {  temp=p[n/2][n/2];  p[n/2][n/2]=p[0][0];  p[0][0]=temp;   temp=p[0][0];  p[0][0]=p[n-1][n-1];  p[n-1][n-1]=temp;

      temp=p[0][n-1];  p[0][n-1]=p[n-1][n-2];  p[n-1][n-2]=temp;    temp=p[n-1][0];  p[n-1][0]=p[n-1][n-3];  p[n-1][n-3]=temp;

      temp=p[n-1][n-1];  p[n-1][n-1]=p[n-1][n-4];  p[n-1][n-4]=temp; }}

    void main(){ int i,j; int c1,c2,c3; int **p; printf("1.正序矩阵  2.反序矩阵/n请选择正序或反序矩阵:"); scanf("%d",&c1); printf("输入矩阵开始值:"); scanf("%d",&c2); printf("输入矩阵阶数:"); scanf("%d",&c3); if((p=(int**)malloc(c3*sizeof(int)))==NULL)  printf("申请内存失败!"); for(i=0;i<c3;i++) {  if((p[i]=(int*)malloc(c3*sizeof(int)))==NULL)   printf("申请内存失败!"); }

     printf("原矩阵为:/n"); if(c1==1) {  for(i=0;i<c3;i++)  {   for(j=0;j<c3;j++)   {    p[i][j]=c2;    printf("%-4d",p[i][j]);    c2++;   }  printf("/n");  } } else {  c2=c2+c3*c3;  for(i=0;i<c3;i++)  {   for(j=0;j<c3;j++)   {    p[i][j]=c2-1;    printf("%-4d",p[i][j]);    c2--;   }   printf("/n");  } }

     Change(p,c3);

     printf("修改后的矩阵为:/n"); for(i=0;i<c3;i++) {  for(j=0;j<c3;j++)   printf("%-4d",p[i][j]);  printf("/n"); }}

     

     

     

     

    魔方阵

    #include <stdio.h>#define N 16 //这里可以修改N的值void main(){ int i,j,k,p,m,n,a[N][N]={0}; p=1; while(p==1) {  printf("Enter n(1~%d):",N-1);  scanf("%d",&n);  if((n!=0)&&(n<N)&&(n%2!=0))   p=0; } i=n+1; j=n/2+1; a[1][j]=1; for(k=2;k<=n*n;k++) {  i=i-1;  j=j+1;  if((i<1)&&(j>n))  {   i=i+2;j=j-1;  }  else  {   if(i<1) i=n;   if(j>n) j=1;  }  if(a[i][j]==0)   a[i][j]=k;  else  {   i=i+2;   j=j-1;   a[i][j]=k;  } } for(i=1;i<=n;i++) {  for(j=1;j<=n;j++)   printf("M",a[i][j]);  printf("/n"); }}


    最新回复(0)