沿对角线打印矩形

要求用C语言,不过我对C不是很熟,只在内存分配的时候使用了C,但并没有释放内存算是失误吧。

int *arrayPrint(int**arr,int n)
{
	int*result=(int*)malloc(sizeof(int)*n*n);
	int i,j,count=0;;
	for(int m=n;m>0;m--)//右上到对角线
	{
		j=m-1;
		for(i=0;i<=n-m;i++)
		{
			result[count]=arr[i][j];
			count++;	

			j++;

		}
	}
	for(int m=n-1;m>0;m--)//打印左下的三角
	{
		j=0;
		for(i=n-m;i<n;i++)
		{
			result[count]=arr[i][j];
			count++;
			j++;
		}
	}
	std::cout<<std::endl;
	return result;
}

  

时间: 2024-07-29 14:43:26

沿对角线打印矩形的相关文章

使用for循环打印矩形和三角形、菱形、空心菱形

打印矩形 **************************************************************************************************** public class Demo3_712 { public static void main(String args[]){ for(int i=1;i<=10;i++){ //控制行 for(int j=1;j<=10;j++){ //控制列 System.out.print(&

从右上角到左下角沿反对角线打印方阵中的元素

问题描述:从右上角到左下角沿反对角线打印方阵中的元素.假设矩阵为: 1,2,3,4 5,6,7,8 9,10,11,12 13,14,15,16 输出:4,3,8,2,7,12,1,6,11,16,5,10,15,9,14,13, 分析:这个没有什么算法问题,就是纯粹的代码技巧问题,通过画图可以找出规律,只要确定每条反对角线的两端的坐标,就可以打印出对角线上的元素.因此可以将其分成两部分打印,定义两个变量row和column来保存矩阵的行数和列数,定义两个变量x和y来作为临时坐标变量.可确定出两

for二重循环 、打印矩形、打印正三角形、打印倒三角形、打印正等腰三角形、打印倒等腰三角形

package cn.cn; import java.util.Scanner; public class for2 { /** * @param args */ public static void main(String[] args) { int []score=new int[4]; //成绩数组 int count=3; //班级数量 double sum=0.0;//成绩总和 double []avgArry=new double[count]; //平均成绩数组 Scanner i

用for循环打印矩形,等腰三角形,菱形

1.打印出矩形 #!/bin/bash for ((i=0;i<5s;i++));do //控制行数for ((j=0;j<5;j++));do //控制列数echo -n "*" //打印doneecho //换行done2.打印出等腰三角形 #!/bin/bash for ((i=0;i<5;i++));dofor ((j=i+1;j<5;j++));doecho -n " "donefor ((k=0;k<=i;k++));doe

顺时针打印矩形列表

问题:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10. 方法1 public static ArrayList<Integer> printMatrix(int [][] matrix) { int n = matrix[0].length; int m = matrix.length

Python打印矩形、直角三角形、等腰三角形、菱形

思路如下: (1)先打印一个星号并换行 print("*") (2)打印一行6个星号 for i in range(6): print("*", end=" ") (3)打印6列星号 for i in range(6): print("*") (4)打印6行6列 for i in range(6): for j in range(6): print("*",end=" ") # 每打印一

21.使用双重循环打印图形

/* * 打印菱形 * */ public class PrintLX { public static void main(String[] args) { //外层循环,执行五次,每次输出一行* for (int i = 1; i <= 5; i++) { for(int j=1;j<=5-i;j++){ System.out.print(" "); } //内层循环,执行五次,每次输出一个* for (int j = 1;j<=2*i-1;j++){ System

bzoj2338 数矩形

给出N(N≤1500)个点,求选四个点作为顶点组成矩形的最大面积,保证有解. 对每两个点连边,按边长排序,枚举等长且中点相同的边作为对角线组成矩形,计算面积取最大值. 时间复杂度O(n2logn) #include<cstdio> #include<algorithm> int xs[1600],ys[1600]; long long ans=0; struct edge{ int x1,y1,x2,y2; long long len; int xm,ym; void cal(){

循环嵌套(打印*** ***)

循环嵌套:一个循环中嵌套其他循环,只有在内层循环结束时,才能执行下一次外层循环(外层循环执行1次,内层循环执行N次) 如:while(条件){ while(条件){ //循环体;   }  } do{ do{ //循环体;   }while(条件); }while(条件): 示例: 使用循环打印矩形:外层循环控制打印的行数,内层循环控制每行打印*的个数 ******** ******** ******** int i=0,j; while(i<3){ j=0; while(j<8){ prin