【第八章】zigzag数组输出

本文介绍了一个使用C语言创建并填充N×N大小的二维动态数组的例子。该程序通过计算给定数组位置的数学公式来填充数组,并将结果以表格形式打印出来。涉及到内存分配、释放等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include "stdafx.h"
#include <ostream>
#include <stdio.h>

int main()
{
 int N;
 int s,i,j;
 int squa;

 /*分配空间*/
 scanf("%d",&N);
 int **a = (int**)malloc(N*sizeof(int));

 if(a==NULL)
  return 0;
 for (i=0;i<N;i++)
 {
  if((a[i]=(int*)malloc(N*sizeof(int)))==NULL)
  {
   while(--i>=0)
    free(a[i]);
   free(a);
   return 0;
  }
 }

 /*数组赋值*/
 squa = N*N;

 for(i =0;i<N;i++)
  for (j=0;j<N;j++)
  {
   s = i+j;
   if(s<N)
    a[i][j] = s*(s+1)/2 + (((i+j)%2==0)?i:j);
   else
   {
    s = (N-1-i)+(N-1-j);
    a[i][j] = squa - s*(s+1)/2 - ( N-(((i+j)%2==0)?i:j));
   }
  }
 /*打印输出*/

  for(i=0;i<N;i++){
   for (j=0;j<N;j++)
    printf("%6d",a[i][j]);
   printf("\n");
   }
  getchar();
  return 0;
}

输出结果为:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值