請大神幫忙設計完整的c語言程式,實現”在4乘4的棋盤上放置棋,要求每一行每一列上只能放置”

時間 2021-08-30 11:19:49

1樓:

樓主你好。見醜了。。我用了一個窮舉的方法。我寫的**的好處在於易於擴充套件,n代表了棋盤的大小,你可以任意修改,不止是4。

【經過幾次優化後變為以下**,採用回溯法】

#include

#include

#define n 6

#define noprinting //標誌是否列印陣列

//如果只是計算可能的情況的話,根本不需要n×n的棋盤陣列。

void printmatrix(int* matrix, int m, int n)

printf("\n");}}

void recusion(int* chessboard, int n, int iter, int* count, int* col)

for(i=0;i

#ifndef noprinting

currentrow[i]=currentrow[j]=0;//清空當前行

#endif}}

}void putchess(int* chessboard, int n, int* count)

void main();

printf("**********start to put chess!**********=\n");

putchess((int*)chessboard, n, &count);

printf("all %d possible deploy!\n", count);

}輸出:

【n為3且選擇列印】

**********start to put chess!**********=

1 1 0

1 0 1

0 1 1

******************************=

1 1 0

0 1 1

1 0 1

******************************=

1 0 1

1 1 0

0 1 1

******************************=

1 0 1

0 1 1

1 1 0

******************************=

0 1 1

1 1 0

1 0 1

******************************=

0 1 1

1 0 1

1 1 0

******************************=

all 6 possible deploy!

press any key to continue

【n為8的時候,有近兩億種情況,花了將近一分鐘的時間算完。】

**********start to put chess!**********=

all 187530840 possible deploy!

press any key to continue

2樓:mis_丫

要列出所有情況?

不現實吧,太多了,算出有幾種還可以

只要一種那你直接指定位置就好了啊

比如:a[0][0] ,a[0][1],

a[1][0] ,a[1][1],

a[2][2] ,a[2][3],

a[3][2] ,a[3][3],

3樓:匿名使用者

編的話我應該會,你說的數學情況我不大懂

是說每行列最多兩個,還是都要有兩個呢?

4樓:匿名使用者

情況比較複雜,最好從每行每列放一個開始吧。

5樓:愛我所愛

只是純粹的放置標誌量麼?有沒有遊戲規則什麼的

c語言編寫一個程式,實現一個3×4矩陣轉置。

6樓:匿名使用者

思路:定了bai兩個二維陣列分du別儲存轉置前zhi後的矩陣,接著for迴圈依次轉置dao即可。內//參考**

#include

int main()

,,},b[4][3];

int i,j;

for(i=0;i<3;i++)

for(j=0;j<4;j++)

容b[j][i]=a[i][j];

for(i=0;i<4;i++)

return 0;}/*

執行結果:

1  5  9

2  6 10

3  7 11

4  8 12*/

7樓:匿名使用者

#include

void main()

for(i=0;i

for(j=0;j

b[j][i]=a[i][j];

for(i=0;i

c語言程式大神幫忙設計一下

自我程式設計 按照題目要求 1 實現檔案寫入功能,一次寫入一個職工資訊。2 實現查詢功能 包含4種條件查詢 3 實現資訊刪除和修改並寫入檔案。根據題意,資料用結構陣列儲存,且職工編號唯一性,因此單獨兩個函式計算資訊長度和編號。除條件查詢函式和讀取檔案的函式,不會自行free釋放記憶體。如你寫 呼叫,...

c語言程式,幫忙詳細分析一下,C語言程式,幫忙詳細分析一下!

天堂妹兒 選b,等於10。首先是t 3 f t,3 也就是4 f t,3 然後是4 t 2 f t,2 算出來是7 f t,2 然後是7 t 1 f t,1 算出來是9 f t,1 然後是9 t 0 f t,0 算出來是10 f t,0 由於此時n 0,所以返回,結果為10。 草野閒羊 選b,等於1...

c語言習題請高手幫忙解答,C語言習題請高手幫忙解答。

1 沒答案,應該是a2,b 5 2 a3 沒答案,因為 u輸出a的值不確定4 a5 c 6 b7 沒答案,應該是scanf f c 8 c9 b 1 沒答案如為printf a d,b d n a,b 選 d a d,b d 2 b3 c 4 c5 c 6 d7 a 我想答案應該是scanf f c...