Ⅰ 我寫的蛇形填數程序,哪錯了呢求解
實在不想看
代碼如下:
#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 自己的模塊不安裝可以嗎
可以,使用時,直接將模塊放到同一個文件夾中調用即可