找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2741|回复: 3

[通用编程] 问个题目

[复制链接]
发表于 2007-8-16 11:46:32 | 显示全部楼层 |阅读模式
战士们做了一个靶子,靶子分五格,中心是39环,从左起顺时针是23、17、24 、16。
    战士小李射了若干枪,每一次都击中靶子,并且正好是100环。问他打了几枪?每枪
    多小环?(靶子趣谈.c)        (答案:6枪,环数为17,17,17,17,16,16。)
答案是这样:

main()
  {int i,j,k,l,m,n;
   for (i=0;i<3;i++)         /*打中39环的枪数*/
    for (j=0;j<=4;j++)       /*打中24环的枪数*/
     for (k=0;k<=4;k++)      /*打中23环的枪数*/
      for (l=0;l<=6;l++)     /*打中17环的枪数*/
       { n=100-i*39-j*24-k*23-l*17;  /*余下的就为16环的枪数*/
     if (n%16==0)
       { m=n/16;
         printf("打中39环%d个,24环%d个,23环%d个,17环%d个,16环%d个,共打了%d枪.",
                 i,j,k,l,m,i+j+k+l+m);
         exit(0);
       }
       }
   getch();
  }
----------------------------------------------------------------------------------------------------------------------
但我改了下:
main()
  {int i,j,k,l,m,n;
   for (i=0;i<3;i++)         /*打中39环的枪数*/
    for (j=0;j<=4;j++)       /*打中24环的枪数*/
     for (k=0;k<=4;k++)      /*打中23环的枪数*/
      for (l=0;l<=6;l++)     /*打中17环的枪数*/
       {
                     if((n=100-i*39-j*24-k*23-l*17)>=0)  /*余下的就为16环的枪数*/
     if (n%16==0)
       { m=n/16;
         printf("打中39环%d个,24环%d个,23环%d个,17环%d个,16环%d个,共打了%d枪.",
                 i,j,k,l,m,i+j+k+l+m);
                }
       }
   
  }
但这样写好像也不能准确确定 五环的数加起来就刚刚等于100 ,但它确能输出正确答案.
然后我再这样写
-------------------------------------------------------------------------------------------------
main()
  {int i,j,k,l,m,n;
   for (i=0;i<3;i++)         /*打中39环的枪数*/
    for (j=0;j<=4;j++)       /*打中24环的枪数*/
     for (k=0;k<=4;k++)      /*打中23环的枪数*/
      for (l=0;l<=6;l++)     /*打中17环的枪数*/
       {
                      n=100-i*39-j*24-k*23-l*17
                       if((n+i*39+j*24+k*23+l*17==100 ) && n>=0)  /*余下的就为16环的枪数*/
     if (n%16==0)
       { m=n/16;
         printf("打中39环%d个,24环%d个,23环%d个,17环%d个,16环%d个,共打了%d枪.",
                 i,j,k,l,m,i+j+k+l+m);
              }
       }
  }

首先第一个是输不出来的,第二个感觉它的判断条件并不充分,但为什么也能输出正确答案呢?
 楼主| 发表于 2007-8-16 15:33:06 | 显示全部楼层
[s:5] 不好意思,偶又范傻了
发表于 2007-8-16 20:27:36 | 显示全部楼层
那august 便自我說明錯誤吧
 楼主| 发表于 2007-8-16 22:45:16 | 显示全部楼层
本来都是同样的意思,也没什么好说了.............. [s:5]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|幻想森林

GMT+8, 2026-11-6 18:28 , Processed in 0.013515 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表