新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > DEV C++九宮格的解法源程序

DEV C++九宮格的解法源程序

作者: 時間:2016-12-01 來源:網(wǎng)絡(luò) 收藏
下面是源碼VS2010壞了還沒來得及重裝用DEV-C++++弄的,注釋我寫的很詳細,因為E文很爛所以變量名很有中國特色,求理解.................

#include
#include
////////////////////////////////////////////////////////////////////////////////
int main(int argc, char *argv[])
{
int x=0; //行
int y=0; //列
int q=1; //循環(huán)標記
int sz;
int shuru; //輸入九宮格的行列數(shù)必須為>3的奇數(shù)
//判斷輸入值是否正確
for(;q;)
{
printf("請輸入要生成的九宮格的行列數(shù):");
scanf("%d",&shuru);
if(shuru<=3||shuru>=100) printf("輸入的行列數(shù)過大或過小,請重新輸入!");
else if(shuru%2==0) printf("您輸入的不是一個奇數(shù),請輸入一個奇數(shù)!");
else q=0;
}
int Gsz[shuru][shuru]; //九宮格布局數(shù)組
for(y=0;y for(x=0;x Gsz[y][x]=0; //九宮格布局數(shù)組初始化
///////////////////////////////////////////////////////////////////////////////
x=0;
y=0;
int s=1;
//第一步
//首先在第一行中間寫下1
x=(shuru-1)/2;
Gsz[y][x]=s;
s++;
for(q=1;q==1;)
{
//程序關(guān)鍵轉(zhuǎn)向處
if(y==0&&x==(shuru-1))
{
y++;
Gsz[y][x]=s;
s++;
y=0;
x=0;
Gsz[y][x]=s;
s++;
q=0;
}else
{
//然后向下移動到最底下,向右移一格寫
y=shuru-1;
x++;
Gsz[y][x]=s;
s++;
//然后一下向右上方寫到最邊處
for(;x<(shuru-1);)
{
y--;
x++;
Gsz[y][x]=s;
s++;
}
//然后平移到最左邊,向上移動一格寫
y--;
x=0;
Gsz[y][x]=s;
s++;
//向右上方寫。遇到數(shù)字后向下寫
y--;
x++;
for(;Gsz[y][x]==0;)
{
Gsz[y][x]=s;
s++;
y--;
x++;
}
y++;x--; //還原循環(huán)最后一次的無效數(shù)值變化
//向下寫一格
y++;
Gsz[y][x]=s;
s++;
//繼續(xù)向右上寫直到最邊處
for(;y>0;)
{
y--;
x++;
Gsz[y][x]=s;
s++;
}
}
}
//第二步
for(;s<(shuru*shuru);)
{
//向下移動到最底下,向右移一格寫
y=shuru-1;
x++;
Gsz[y][x]=s;
s++;
//向右上方寫。遇到數(shù)字后向下寫
y--;
x++;
for(;Gsz[y][x]==0;)
{
Gsz[y][x]=s;
s++;
y--;
x++;
}
y++;x--; //還原循環(huán)最后一次的無效數(shù)值變化
//向下寫一格
y++;
Gsz[y][x]=s;
s++;
//繼續(xù)向右上寫直到最邊處
for(;x<(shuru-1);)
{
y--;
x++;
Gsz[y][x]=s;
s++;
}
//然后平移到最左邊,向上移動一格寫
y--;
x=0;
Gsz[y][x]=s;
s++;
//繼續(xù)向右上寫直到最邊處
for(;y>0;)
{
y--;
x++;
Gsz[y][x]=s;
s++;
}
}
Gsz[(shuru-1)][(shuru-1)/2]=s; //寫最后一個數(shù)值
////////////////////////////////////////////////////////////////////////////////
int ax=0;
//屏幕輸出
for(y=0;y {
for(x=0;x {
printf("%d",Gsz[y][x]);
if(Gsz[y][x]<=9) printf(" ");
else printf(" ");
}
for(q=0;q printf(" 此列和為:%d",ax );ax=0;
printf("");
}
for(x=0,y=0,ax=0;y printf("斜角1的和為:%d",ax);
for(x=shuru-1,y=0,ax=0;y printf("斜角2的和為:%d",ax);
printf("");
system("PAUSE");
return 0;
}

本文引用地址:http://m.butianyuan.cn/article/201612/324261.htm


關(guān)鍵詞: DEVC++九宮格解法源程

評論


技術(shù)專區(qū)

關(guān)閉