蓝桥杯 c语言入门试题,蓝桥杯c语言试题2015

蓝桥杯c语言试题2015

25

int main(int argc, char* argv[])

26

{

27

int x[] = {0,0,0,0};

28

29

bigmul(87654321, 12345678, x);

30

31

printf("%d%d%d%d\n", x[0],x[1],x[2],x[3]);

32

33

return 0;

34

}

第七题:

补全代码,有个6*6的棋盘,预先已经放置了一部分棋子,现在要再补充棋子使得每行每列都有3个棋子

题目附带的不完整代码:

001

int N = 0;

002

003

bool CheckStoneNum(int x[][6])

004

{

005

for(int k=0; k<6; k++)

006

{

007

int NumRow = 0;

008

int NumCol = 0;

009

for(int i=0; i<6; i++)

010

{

011

if(x[k][i]) NumRow++;

012

if(x[i][k]) NumCol++;

013

}

014

if(_____________________) return false; // 填空

015

}

016

return true;

017

}

018

019

int GetRowStoneNum(int x[][6], int r)

020

{

021

int sum = 0;

022

for(int i=0; i<6; i++) if(x[r][i]) sum++;

023

return sum;

024

}

025

026

int GetColStoneNum(int x[][6], int c)

027

{

028

int sum = 0;

029

for(int i=0; i<6; i++) if(x[i][c]) sum++;

030

return sum;

031

}

032

033

void show(int x[][6])

034

{

035

for(int i=0; i<6; i++)

036

{

037

for(int j=0; j<6; j++) printf("%2d", x[i][j]);

038

printf("\n");

039

}

040

printf("\n");

041

}

042

043

void f(int x[][6], int r, int c);

044

045

void GoNext(int x[][6], int r, int c)

046

{

047

if(c<6)

048

_______________________; // 填空

049

else

050

f(x, r+1, 0);

051

}

052

053

void f(int x[][6], int r, int c)

054

{

055

if(r==6)

056

{

057

if(CheckStoneNum(x))

058

{

059

N++;

060

show(x);

061

}

062

return;

063

}

064

065

if(______________) // 已经放有了棋子

066

{

067

GoNext(x,r,c);

068

return;

069

}

070

071

int rr = GetRowStoneNum(x,r);

072

int cc = GetColStoneNum(x,c);

073

074

if(cc>=3) // 本列已满

075

GoNext(x,r,c);

076

else if(rr>=3) // 本行已满

077

f(x, r+1, 0);

078

else

079

{

080

x[r][c] = 1;

081

GoNext(x,r,c);

082

x[r][c] = 0;

083

084

if(!(3-rr >= 6-c || 3-cc >= 6-r)) // 本行或本列严重缺子,则本格不能空着!

085

GoNext(x,r,c);

086

}

087

}

088

089

int main(int argc, char* argv[])

090

{

091

int x[6][6] = {

092

{1,0,0,0,0,0},

093

{0,0,1,0,1,0},

094

{0,0,1,1,0,1},

095

{0,1,0,0,1,0},

096

{0,0,0,1,0,0},

097

{1,0,1,0,0,1}

098

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值