在n*n方阵里填入1,2,...n*n,要求填成蛇形

#include<stdio.h>
#define MAX 100
int a[MAX][MAX]={0};//将整个数组初始化为零
void main()
{
	int i=0,j=0;
	int n,count=1;
	scanf("%d",&n);
	if(n>MAX)//如果输入的数组大于初始化的数组,程序结束
		return;
	j=n-1;
	while(count<=n*n)//这点需要注意 必须是小于等于
	{                //如果输入的数是偶数的话小于就够了 但当输入的数是奇数就需要等于才行
		while(i<n && !a[i][j])//!a[i][j]这也是必须加的 先从最右边填
		{
			a[i][j]=count++;
			i++;
		}
		while(j>0 && !a[i-1][j-1])
		{
			a[i-1][j-1]=count++;
			j--;
		}
		while(i>1 && !a[i-2][j])
		{
			a[i-2][j]=count++;
			i--;
		}
		while(j<n-2 && !a[i-1][j+1])
		{
			a[i-1][j+1]=count++;
			j++;
		}
	}
	for(i=0;i<n;i++)
	{
		for(j=0;j<n;j++)
		{
			printf("%3d",a[i][j]);
		}
		printf("\n");
	}
}

当输入4的时候,输出如下:

时间: 2024-11-09 10:32:38

在n*n方阵里填入1,2,...n*n,要求填成蛇形的相关文章

表单的ajax填入问题

又是表单 今天的表单是用事件委托从table里面获得eventId,用get请求从后台获得json数据填入表单中 第一个执行的比较顺利,但当再添加一个事件之后,修改(将数据填入表单)功能竟然失灵了,然后各种找原因,当把新添加的删除过后他又可以实现,但是当添加信息之后,用alert测试,他的字段获得正常,但是显示返回json的时候,无法执行,初步判断是get请求没有发送出去,至于原因还有待探索. 第二个是将从json返回的checkbook的值用for循环输出以checkbook的形式显示到相应位

EasyStruct.js轻松创建可填入式html模板结构

在前端开发的工作中,经常会碰到这样的情况,加载页面数据的时候,有一部分内容的结构是重复的,只是数据不一样.比如说论坛.贴吧里面的各个楼层,还有一些类似工资报表.销售报表的每一行,举个例子: function addTr(data1,data2,data3){ return '<tr style="text-align:center"><td style="height:40px;">'+data1+'<td><td styl

BPM实例方案分享:表单子表自动填入数据

软件环境:H3 BPM 9.2.7 业务需求: 现在想要实现一个效果:在打开表单.选择合同阶段后能够读取后台数据,将多行数据自动填入下方的子表. 本文将用三种方法实现自动填入子表的功能. 方法一 前台使用如下几个函数就可以实现了,在合同的onchange事件获取数据以后处理. 复制代码 //获取子表 var dtl = $.MvcSheetUI.GetElement("子表名").SheetGridView(); //增加子表行 dtl.addbtn.click();  或 dtl._

SQL排序后将序号填入指定字段

1.显示行号 如果数据没有删除的情况下主键与行号是一致的,但在删除某些数据,行号就与主键不一致了,这时需要查询行号就需要用新的方法,在SQL Server2005之前,需要使用临时表,但在SQL Server2005中,使用ROW_NUMBER()非常方便. 以下是一个查询语句,意思是按照cid将数据排序,然后将排序后的序号填入新建的字段rowNum. select row_number() over (order by cid) as rowNum,* from t_gene 查询结果: 2.

填入服务器配置

填入服务器配置 位置:公众服务号后台 -> 开发者中心(左侧菜单最下方) -> 配置项 服务端配置 当前以PHP为例 开发认证函数 认证辅助函数 URL入口 调用返回结果 提交服务器配置 成功返回 如果有这个提示,则证明本次服务端配置成功 失败返回 如果有这个提示,则需要验证填入的URL请求处理的过程中是否出现问题 当排查完毕之后发现处理没有出现异常,那么验证处理完成后的输出结果是否有问题,这里的验证不能只看浏览器中输出的数据,如: 显示的返回是正常的,但是就是验证失败,在这种情况下,可以通过

textbox填入后验证输入的合法或根据输入的内容失去焦点后立即得出其他信息

<x:SimpleForm ID="SimpleForm1" runat="server" EnableBackgroundColor="true" ShowBorder="False" BodyPadding="2px" ShowHeader="False"> <Items> <x:Panel ID="Panel3" ShowHeade

提取mongodb中论文的信息,填入mysql,加快统计速度

1.创建mysql的alzheimer表,包括pmc_id,journal,title,abstract,name,authorinfor,pun_year,keyword,reference信息. #encoding = utf-8 import pymysql import json def input_from_json(filename): with open(filename,'r') as file: data = json.loads(file.read()) return dat

Android实战简易教程-第三十九枪(第三方短信验证平台Mob和验证码自动填入功能结合实例)

用户注册或者找回密码时一般会用到短信验证功能,这里我们使用第三方的短信平台进行验证实例. 我们用到第三方短信验证平台是Mob,地址为:http://mob.com/ 一.注册用户.获取SDK 大家可以自行注册,得到APPKEY和APPSECRET,然后下载SDK,包的导入方式如截图: 二.主要代码 SMSSendForRegisterActivity.java:(获取验证码页) package com.qiandaobao.activity; import java.util.regex.Mat

Android实战简易教程-第三十六枪(监听短信-实现短信验证码自动填入)

一般用户喜欢用手机号作为用户名注册APP账号,这时一般都是通过手机验证码的方式进行验证,下面我们就研究一个非常实用的方法,通过监听短信-实现短信验证码的自动填入,提高用户体验. 首先我们看一下如何监听手机短信. 一.获取短信全部内容 1.新建一个SMSBroadcastReceiver: package com.example.messagecut; import java.text.SimpleDateFormat; import java.util.Date; import android.

2014年去哪儿网笔试题--一个10*10的矩阵(可以理解为棋盘),随时生成一组数据填入矩阵,任何一个位置的数字除4进行计算,按余数着色...

一个10*10的矩阵(可以理解为棋盘),随时生成一组数据填入矩阵,任何一个位置的数字除4进行计算,按余数着色,余数为0着色为red,1为blue,2为green,3为black,可以理解为生成4中颜色的棋子放入棋盘,如果存在其中同色五星连珠的情况(规则通五子棋),找出任意一组,输出5个棋子的位置下标值. 只是用最笨的方法实现一下: public class FiveColor { public void test(){ int a[][]=new int[10][10]; for(int i=0