急需一个一百行左右的c语言编程,以include<stdio.h>开头的,再附上算法分析和流程设计和名称。

急需一个一百行左右的c语言编程,以include<stdio.h>开头的,再附上算法分析和流程设计和名称。,第1张

/********************************************************************

 * 魔术方阵: 

 * 将连续整数1、2、3、……、n,按某种特别顺序排在方阵里,方阵中的每一行

 * 每一列或对角线位置的各自相加的和均相等。 

 *********************************************************************/ 

 

 #include<stdio.h>

 #include<stdlib.h>

 

 // 简捷连续填数法创建魔幻方阵

 int magicl(int **magic,int n)

 {

  if( n%2 == 0 ) //n为偶数,不能创建。 

  return 0

int i = 仔斗郑0,k = 1

int j = (n-1)/2

magic[i][j] = k

while( k < n*n )

{

if( i-1 <0 && j+1 >= n )

{

i++

magic[i][j] = ++k

continue

}

if( i-1 <0 )

  i = n-1

else

i--

if(j+1 >= n)

j= 0

else

j++

if(magic[i][j] == -1)

magic[i][j] = ++k

else

{

i+=2

j--

magic[i][j] = ++k

}

}

 return 1

 }

 

 int main()

 {

  int i,j,n,sum

  int **magic

  printf("方阵的阶数:"销腊)

  scanf("%d",&n)

  if( !(magic =(int **)malloc(n*sizeof(int *))))

  {

  printf("内存分配失败!\n")

  exit(1) 

 }

 for(i = 0 i<n ++i)

 {

  if( !(magic[i] = (int *)malloc(n*sizeof(int))))

  {

  printf("内存分配失败!\n")

  exit(1)

  }

   }

   for(i = 0 i<n i++)

   {

    for(j = 0 j<n j++)

    magic[i][j] = -1

   }

   if( magicl(magic,n) )

   {

    for(i = 0 i<n i++)

    {

    for(j = 0 j<n j++)

    printf("%4d",magic[i][j])

    printf("\n")

   }

   sum = 0

   for(i = 0 i<n i++)

    sum 念颂+= magic[i][i]

printf("\n各行、列、对角线的和为:%d\n\n",sum) 

   }

   else

   printf("生成魔幻方阵失败,可能是输入的阶数不正确!\n\n") 

  return 0

 }

#include<stdio.h>

int main(){

for(int i=0i<丛拿100i++)

printf("*****\肢渗n"渗饥搭)

return 0

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12555478.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存