搜索
查看: 724|回复: 3
打印 上一主题 下一主题

求大师给修改代码!!!!!!!

[复制链接]
跳转到指定楼层
楼主
发表于 2014-3-26 14:15:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
有三门礼炮,A:2s发一枚;B:3s一枚 C:5s一枚。求在1分钟内,能听见多少声?


#include <stdio.h>
int main(void)
{
         int i,j,k,n,sum;
         for(n=1;n<=60;n++){
                 i=0;j=0;k=0;
                 if(!(n%2&&n%3&&n%5)){                     //如果,2,3,5能同时被整除
                        i=i+1;
                         }
                 
                 else  
                         if(!((n%2&&n%3)||!(n%3&&n%5)||!(n%2&&n%5)))     //如果他们有其中两个能被整除
                {
                         j=j+1;  
                         }
                         else
                                 if(!(n%2||n%3||n%5)){          // 如果他们中有一个能被整除
                        k=k+1;
                        }
                     
         }
         sum=i+j+k;               
         printf("sum=%d\n",sum);


         return 0;
}



我的输出总是  sum=1;

最佳答案

查看完整内容

试试这种思路吧
沙发
发表于 2014-3-26 14:15:45 | 只看该作者
本帖最后由 rosynirvana 于 2014-3-26 15:15 编辑

试试这种思路吧
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main()
  4. {
  5.         int t = 0;
  6.     int count = 0;
  7.     for(t=1; t<=60; ++t){
  8.                 if(t % 2 == 0)
  9.                         count += 1;
  10.         else if(t % 3 == 0)
  11.                         count += 1;
  12.         else if(t % 5 == 0)
  13.                         count += 1;
  14.     }
  15.     printf("%d\n", count);
  16.         system("pause");
  17.         return 0;
  18. }
复制代码
板凳
发表于 2014-3-26 15:16:47 | 只看该作者
if(!(n%2&&n%3&&n%5)){                     //如果,2,3,5能同时被整除
这里就错了,不熟悉的话不要写这么复杂的表达式

另外这样分类讨论不合理,参照上面的思路重写吧
地板
 楼主| 发表于 2014-3-26 15:20:43 | 只看该作者
rosynirvana 发表于 2014-3-26 15:16
if(!(n%2&&n%3&&n%5)){                     //如果,2,3,5能同时被整除
这里就错了,不熟悉的话不要写 ...

多谢,只不过我只会最基础的运算符。    我会好好研究的,谢谢啦!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表