| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1594 人关注过本帖
标题:有点错误的点灯游戏的程序,大家帮着调试一下吧
取消只看楼主 加入收藏
小先
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2006-7-9
收藏
得分:0 

是啊,就是结果是错的啊

2006-07-11 11:04
小先
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2006-7-9
收藏
得分:0 
怎么办啊,我想破了脑袋还是没做出来啊,还有2天就交作业了哎
2006-07-11 11:26
小先
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2006-7-9
收藏
得分:0 
此题思想是:先定义第1行的元素值,1表示被点击了奇数次,灯的状态是亮的,0表示被点击了偶数次,灯的状态是灭的。
然后判断下一行,因为此时第一行的灯状态只受下一行的影响,如果第一行的灯是灭的,则它下一行的就点击,若是亮的,则它下一行的就不点了!然后用循环控制就行了!
2006-07-11 11:47
小先
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2006-7-9
收藏
得分:0 
我知道错在哪里了,不过不会改正,大家再帮忙想想啊,就是第一步的循环,实际上应该是将第一行的N个元素用嵌套循环。比如如果是五行五列的话,就是
for(a[0]=0;a[0]<=1;a[0]++)
for(a[1]=0;a[1]<=1;a[1]++)
for(a[2]=0;a[2]<=1;a[2]++)
for(a[3]=0;a[3]<=1;a[3]++)
for(a[4]=0;a[4]<=1;a[4]++)
现在是N行N列,也就是要N层嵌套,不知道怎么表示啊,大家再帮一下忙吧!
2006-07-11 18:25
小先
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2006-7-9
收藏
得分:0 
你帮忙看看下面怎么改啊
2006-07-11 18:26
小先
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2006-7-9
收藏
得分:0 

不是吗?说实话我也迷糊着呢!这两天吃饭睡觉满脑子的程序,脑袋都要爆炸了!虽然我不知道这为什么这样表示就是最小步数,可它就是最小的!

2006-07-12 09:29
小先
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2006-7-9
收藏
得分:0 
#include"stdio.h"
#include"Conio.h"
main()
{
int row=7;
int a[500]={0},t,i,j,m,n,k,s,ss,sum;
clrscr();
for(a[0]=0;a[0]<=1;a[0]++)
for(a[1]=0;a[1]<=1;a[1]++)
for(a[2]=0;a[2]<=1;a[2]++)
for(a[3]=0;a[3]<=1;a[3]++)
for(a[4]=0;a[4]<=1;a[4]++)
for(a[5]=0;a[5]<=1;a[5]++)
for(a[6]=0;a[6]<=1;a[6]++)
{ for(k=0;k<row;k++)
for(i=1;i<row;i++) /* OUT 1 ROW */
for(j=0;j<row;j++)
{ s=a[(i-1)*row+j]; /* 上 */
if(i-2>=0)
s+=a[(i-2)*row+j]; /*上上 */
if(i-1>=0)
{ if(j-1>=0)
s+=a[(i-1)*row+j-1]; /*上左 */
if(j+1<row)
s+=a[(i-1)*row+j+1]; /*上右 */
}
if(s<=1)
a[i*row+j]=1-s; /*self */
else if(s<=3)
a[i*row+j]=3-s;
else
a[i*row+j]=1;
}
m=row-1;
for(n=0;n<row;n++) /*Judge last row ok? */
{ ss=a[m*row+n]+a[(m-1)*row+n]; /*上 self */
if(n-1>=0)
ss+=a[m*row+n-1]; /*左 */
if(n+1<row)
ss+=a[m*row+n+1]; /*右 */
if(ss%2==0) break;
}
if(n==row)
{ printf("\n OK !\n");
sum=0;
for(i=0;i<n*n;i++)
{ sum+=a[i];
printf("%2d",a[i]);
if((i+1)%n==0)printf("\n");
}
printf("Dian ji de zui shao ci shu :%d.\n", sum);
getch();
}
}
}

开始的几个for嵌套循环,怎么改成N层嵌套啊,帮忙看看,N值想自己从键盘输入!此程序完全正确!就是不符合要求!
2006-07-12 09:40
小先
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2006-7-9
收藏
得分:0 
不,就是最少步数!你看看网上搜到的那个程序说明应该会明白的!
2006-07-13 10:03
小先
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2006-7-9
收藏
得分:0 
以下是引用lxs5216在2006-7-12 9:23:03的发言:

这样可以得出最小步数???

你看看网上搜到的那个程序说明应该稍微明白点的,在上一页有连接!

2006-07-13 10:05
快速回复:有点错误的点灯游戏的程序,大家帮着调试一下吧
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029552 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved