Ⅰ 我写的蛇形填数程序,哪错了呢求解
实在不想看
代码如下:
#include<stdio.h>
#define MAXN 10
int main()
{
int a[MAXN][MAXN]={0};
int n,x,y,tot=0;
scanf("%d",&n); //输入n , 表示n行n列;
tot=a[x=0][y=n-1]=1;
while(tot<n*n) //判断是否填完
{
/*先判断有没有越界,再判断下一个位置是否已填数 再把数字填下 , 步骤为 下 左 上 右 不断循环 */
while(x+1<n&&!a[x+1][y]) a[++x][y]=++tot;// 下
while(y-1>=0&&!a[x][y-1]) a[x][--y]=++tot;//左
while(x-1>=0&&!a[x-1][y]) a[--x][y]=++tot;//上
while(y+1<n&&!a[x][y+1]) a[x][++y]=++tot;//右
}
for(x=0;x<n;x++)
{
for(y=0;y<n;y++)
printf("%d\t",a[x][y]);
printf("\n");
}
return 0;
}
Ⅱ python中如果需要使用读写文件操作应该加载什么模块这个模块还有提供写什么其他功能
可以直接使用,不需要加载其他模块
例如:
def getSpringData(fname):
springData = open(fname, 'r')
distances = []
forces = []
for line in springData:
if line[0] == '#': continue
line = line[:-1]
elems = line.rsplit(':')
distances.append(float(elems[0]))
forces.append(float(elems[1]))
return distances,forces
这个函数从fname中取出弹簧的位移和弹力,文件格式是位移:弹力,每组数据单占一行。
返回两个列表。
Ⅲ python不能导入模块怎么解决
模块是指一个可以交互使用,或者从另一Python 程序访问的代码段。只要导入了一个模块,就可以引用它的任何公共的函数、类或属性。
模块可以通过这种方法来使用其它模块的功能。
用import语句导入模块,就在当前的名称空间(namespace)建立了一个到该模块的引用.这种引用必须使用全称,也就是说,当使用在被导入模块中定义的函数时,必须包含模块的名字。所以不能只使用 funcname,而应该使用 modname.funcname!
Ⅳ Python不显示模块列表问题,怎么解决
可以这样调用help函数,然后再help控制台里输入moles(整个过程必须在交互式界面下完成,无法写成脚本)
>>> help()
help> moles
稍等一会后,就会列出所有的模块
Ⅳ python 不用random模块怎么随机取数
Python标准库random模块
(生成随机数模块)
random.random()
random.random()用于生成一个0到1的随机符点数: 0 <= n < 1.0
random.uniform(a, b)
random.uniform的函数原型为:random.uniform(a,
b),用于生成一个指定范围内的随机符点数。如果a > b,则生成的随机数n: b <= n <= a。如果 a <b,
则 a <= n <= b。
[python] view plain
print random.uniform(10, 20)
print random.uniform(20, 10)
#---- 结果(不同机器上的结果不一样)
#18.7356606526
#12.5798298022
random.randint(a, b)
random.randint()的函数原型为:random.randint(a, b),用于生成一个指定范围内的整数。其中参数a是下限,参数b是上限,生成的随机数n: a <= n <= b
Note:a = [random.randint(0, 100) for __ in range(100)] #生成100个指定范围内的整数
[python] view plain
print random.randint(12, 20) #生成的随机数n: 12 <= n <= 20
print random.randint(20, 20) #结果永远是20
#print random.randint(20, 10) #该语句是错误的。下限必须小于上限。
random.randrange([start], stop[, step])
random.randrange的函数原型为:random.randrange([start],
stop[, step]),从指定范围内,按指定基数递增的集合中 获取一个随机数。如:random.randrange(10, 100,
2),结果相当于从[10, 12, 14, 16, ... 96, 98]序列中获取一个随机数。random.randrange(10,
100, 2)在结果上与 random.choice(range(10, 100, 2) 等效。
random.choice(sequence)
random.choice从序列中获取一个随机元素。其函数原型为:random.choice(sequence)。参数sequence表示一个有序类型。这里要说明 一下:sequence在Python不是一种特定的类型,而是泛指一系列的类型。list, tuple, 字符串都属于sequence。有关sequence可以查看python手册数据模型这一章,也可以参考:http://www.17xie.com/read-37422.html 。下面是使用choice的一些例子:
[python] view plain
print random.choice("学习Python")
print random.choice(["JGood", "is", "a", "handsome", "boy"])
print random.choice(("Tuple", "List", "Dict"))
random.shuffle(x[, random])
random.shuffle的函数原型为:random.shuffle(x[, random]),用于将一个列表中的元素打乱。如:
[python] view plain
p = ["Python", "is", "powerful", "simple", "and so on..."]
random.shuffle(p)
print p
#---- 结果(不同机器上的结果可能不一样。)
#['powerful', 'simple', 'is', 'Python', 'and so on...']
random.sample(sequence, k)
random.sample的函数原型为:random.sample(sequence, k),从指定序列中随机获取指定长度的片断。sample函数不会修改原有序列。
[python] view plain
list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
slice = random.sample(list, 5) #从list中随机获取5个元素,作为一个片断返回
print slice
Note:上面这些方法是random模块中最常用的,在Python手册中,还介绍其他的方法。
Ⅵ 蛇形填数 思路(不用代码)
我给个思路:这是个4连通问题。
针对每个方阵中的格子,与它四连通相邻的格子有4个:左右和上下;
要想访问它们有四个方向:向下y坐标加1,纵坐标加0,记为(0,1),顺时针是向左(-1,0),然后是(0,-1),最后是(1,0);可用一个方向数组存储这四个方向,切换时按顺序选取。
数组开设好,填充为0值;
种子格子为数组右上方元素填入第一个计数1,下面第一方向为(0,1),按照这个方向如果发现新格子在数组坐标内且其值为0,则进行填充,再按照方向继续填充;
如果发现上面条件不满足换第二个方向(-1,0)继续填充;
直到当前格子的四个方向均不满足填充条件时结束。
这样得到的就是所谓蛇形填数的结果,而且与方阵尺寸无关。
Ⅶ 为什么python不能导入模块
因为print,type是内置函数,所以可以直接使用.
你可以到__builtin__这个模块中找到所有的内置函数,也就是不需要导入就可以直接使用的函数。
如果解决了您的问题请采纳!
Ⅷ 蛇形填数 用c语言
#include <stdlib.h>
#include <stdio.h>
void main()
{
int a[21][21], i, j, n;
scanf("%d", &n);
for( i=0; i<n; i++)
for (j=0; j<n; j++)
a[i][j] = -1;
int value = 1, max = n*n;
i = 0, j=n-1;
int inci = 1, incj = 0;
int nexti, nextj;
while(value <= max){
a[i][j] = value ++;
//printf("i=%d, j=%d value=%d\n",i, j, value-1);
nexti = i + inci;
nextj = j + incj;
if( nexti>n-1 || nexti<0 || nextj>n-1 || nextj<0 ||
a[nexti][nextj] != -1) {
if(inci==1 && incj==0) {
inci= 0, incj=-1;
}
else if(inci==0 && incj==-1) {
inci= -1, incj=0;
}else if(inci==-1 && incj==0) {
inci = 0, incj=1;
}else {
inci = 1, incj=0;
}
nexti = i+inci;
nextj = j+incj;
}
i = nexti;
j = nextj;
}
for (i=0; i<n; i++) {
for(j=0; j<n; j++) printf("%3d ", a[i][j]);
printf("\n");
}
}
-------
5
13 14 15 16 1
12 23 24 17 2
11 22 25 18 3
10 21 20 19 4
9 8 7 6 5
Ⅸ 有人可以帮忙,指点一下“蛇形填数”的思路吗
先把矩形全部初始化为0
然后选中起始点,从这个点开始循环,
循环过程中不断检测前方时候到达边界,若到达则拐弯
若拐弯后到达边界,则程序结束
Ⅹ python 自己的模块不安装可以吗
可以,使用时,直接将模块放到同一个文件夹中调用即可