Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2348921
  • 博文数量: 816
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 5010
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-17 17:57
文章分类

全部博文(816)

文章存档

2011年(1)

2008年(815)

分类:

2008-12-17 18:08:58

我在编一个玩意程序时发现一个问题:
请看以下代码:
void TForm1::get_n(void)
{
int a,b,c,d;
int m,n,t,i;
//for(a=0;a<10;a++)
//        {
a=1;
        for(b=0;b<10;b++)
                {
                for(c=0;c<10;c++)
                        {
                        d=0;          //这一行本应为不需要的代码
                        for(d==0;d<10;d++)
                                {
                                m=a*1000+b*100+c*10+d;
                                if(m==0) m=1;
                                m*=9;
                                n=d*1000+c*100+b*10+a;
//                                if(n==9801)
//                                    Edit4->Text="9801";
                                if(m==n)
                                        {
                                        Edit1->Text=a;
                                        Edit2->Text=b;
                                        Edit3->Text=c;
                                        Edit4->Text=d;
                                        }
                                }
                        }
                }
}
程序中的d=0;本来是一个不必要的代码,但少了一行,编译执行时却没有执行b,c的循环,也就是说m=a*1000+b*100+c*10+d只共执行了10次循环,而加了d=0;后才会执行b,c的循环,这种问题是不是编译器的问题还是C语言中的语法有别的隐性规定?


--------------------next---------------------

阅读(1512) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~