int i,j,k,N; //矩阵阶数 int a[11][11]; //N阶矩阵 int count=0; //矩阵元素值,初始为0 scanf("%d",&N);for(i=1;i<=2*N-1;i++){ //N阶方阵有2*N-1条反对角线,依次遍历之 if(i%2!=0){ //当对角线编号为奇数时,各元素按此对角线上的矩阵各元素下标之和从小到大的顺序排列 for(j=1
先说思想:N=4时候和N=5的时候前面4条斜线上三角是相同的!所以这个可以用递归做。还有个规律很重要就是当2个数的横纵坐标和都是N+1的时候这2个值的和都是N*N+1!问题就很容易解决了!写个大概:int **array=NULL;void main(){ int n;scanf("%d",&n);array=(int**)malloc(n*size...
用C语言输出一个N阶蛇形矩阵(随意输出n*n个数之后,不要从1开始的,是自己任意输出的n*n个数)。 我是新手请编一个简单的,谢谢! #include <stdlib.h> #include <stdio.h> #include /*用到了time函数,所以要有这个头文件*/ int main( void) { int i,j,MAX; int nu
既然是蛇形矩阵的话,自然是要像蛇那样走啊。这种问题一般做法是先在数组里写好,然后再输出数组。---正文的分割线---我们可以观察到以下事实:①从顶点开始,按照右->下->左->上的方式循环,从1开始写数字②当走到矩阵的边界或遇到写过数字的位置时,换个方向继续写③矩阵写满了就停下来如果把行列号看成坐标...
用C语言输出一个N阶蛇形矩阵(随意输出n*n个数之后,不要从1开始的,是自... 1、先说思想:N=4时候和N=5的时候前面4条斜线上三角是相同的!所以这个可以用递归做。 2、蛇形数组你可以看做是一个个正方形做成的,而没有一个正方形又有四个边。
避免你说的问题 你可以把输出挪出刚开始用来赋值的两个FOR循环即可 直接修改你的代码 include <stdio.h> define SIZE 80 int a[SIZE][SIZE];void main(){int p,q;int n;printf("输入蛇形数组的维数:");scanf("%d",&n);for(p = 0; p < n; p++){ for(q = 0; q < n; q++)...
//以前写得,按蛇形增长方向给每个位置赋值#include#includeint*p=NULL;//当前位置int*s=NULL;//开始位置intn=0;intfunc(intnum,intway){if(num==n*n+1)return0;*p=num;switch(way)//四个方向,下,斜上,右,斜下{case0://向下时下一个位置在p+n处,如当前位置是a[1][0],下个...
用C语言输出一个N阶蛇形矩阵(随意输出n*n个数之后,不要从1开... void) { int i,j,MAX; int number[400][400] = {0}; printf("请输入一个整数:\n&... printf("\n"); } return 0; } 这个是随机产生矩阵的值,注意输入的N 请... 2014-01-09 用C语言输出一个N阶蛇形矩阵,看看这个程序...
int main(){ //该程序虽然能通过评测系统的检测,但时间复杂度为O(n^3),因而有待改进 int N=5;//矩阵阶数 int a[21][21]; //N阶矩阵 int count=0; //矩阵元素值,初始为0 int i,j,k;for(i=1;i<=2*N-1;i++){ //N阶方阵有2*N-1条反对角线,依次遍历之 if(i%2!=...