幻想森林

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

[通用编程] 问个题目

[复制链接]

313

主题

1574

帖子

1万

积分

⑧专业

*永恒国度*

积分
14145
QQ
发表于 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);
              }
       }
  }

首先第一个是输不出来的,第二个感觉它的判断条件并不充分,但为什么也能输出正确答案呢?
[img][/img] http://shop33698673.taobao.com被别人嫉妒,证明你优秀,嫉妒别人说明你无能
回复

使用道具 举报

313

主题

1574

帖子

1万

积分

⑧专业

*永恒国度*

积分
14145
QQ
 楼主| 发表于 2007-8-16 15:33:06 | 显示全部楼层
[s:5] 不好意思,偶又范傻了
[img][/img] http://shop33698673.taobao.com被别人嫉妒,证明你优秀,嫉妒别人说明你无能
回复 支持 反对

使用道具 举报

19

主题

842

帖子

1万

积分

⑧专业

絕望青年,一起增高吧

积分
13676
发表于 2007-8-16 20:27:36 | 显示全部楼层
那august 便自我說明錯誤吧

為著彼岸,便要與之妥協 但為著彼岸,更不能與之妥協

回复 支持 反对

使用道具 举报

313

主题

1574

帖子

1万

积分

⑧专业

*永恒国度*

积分
14145
QQ
 楼主| 发表于 2007-8-16 22:45:16 | 显示全部楼层
本来都是同样的意思,也没什么好说了.............. [s:5]
[img][/img] http://shop33698673.taobao.com被别人嫉妒,证明你优秀,嫉妒别人说明你无能
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-5-4 12:54 , Processed in 0.020177 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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