鱼C论坛

 找回密码
 立即注册
查看: 4119|回复: 17

C代码问题(貌似有错误,求帮助!!!)

[复制链接]
发表于 2012-8-22 20:26:16 | 显示全部楼层 |阅读模式
5鱼币
#include<stdio.h>
int main()
{
int a=0,i;
for(i=0;i<10000;i++)
{
        if(i%3!=0||i%5!=0)
        {
                a=a+i;
        }
}
printf("%d\n",a);
return 0;
}
代码目的:计算1至10000之间不能被3或5整除的整数之和,然后输出.
结果貌似不对,然后把i改为10,自行计算,结果不对。请问哪里需要改动,才能到达目的!!

点评

发代码请用 格式发 在编辑栏 上面有个 <> 把代码复制进去就可以了  发表于 2012-8-23 15:24
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-8-22 20:26:17 | 显示全部楼层
  1. #include<stdio.h>

  2. int main()
  3. {
  4.         int a=0,i;
  5.         for(i=1;i<10000;i++)
  6.         {
  7.         if(i%3!=0&&i%5!=0)                //因为要同时满足  不被3 和5 整除 所以要用 逻辑与 运算符 || 这个逻辑非 表示 只需要满足一方即可
  8.                 {
  9.                         a+=i;
  10.                 }
  11.         }
  12.         printf("%d\n",a);
  13.         return 0;
  14. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-8-22 20:46:50 | 显示全部楼层
你的意思是不是 即不能被3 也不能被 5整除的整数 , 如果是那么 就把 || 改为 &&

  1. #include<stdio.h>
  2. int main()
  3. {
  4. int a=0,i;
  5. for(i=0;i<10000;i++)
  6. {
  7.          if(i%3!=0 && i%5!=0)
  8.          {
  9.                  a=a+i;
  10.          }
  11. }
  12. printf("%d\n",a);
  13. return 0;
  14. }
复制代码


小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-8-22 21:06:45 | 显示全部楼层

貌似把代码改成这样,如下:
#include<stdio.h>
int main()
{
long a=0,i;
for(i=0;i<10000;i++)
{
        if(i%3==0||i%5==0)
        {
                a=a+i;
        }
}
printf("%ld\n",a);
return 0;
}
结果是一样,但用long的原因是因为结果超出int范围,但你所给出的代码,为什么不会超出int范围?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-8-22 22:11:49 | 显示全部楼层
#include <stdio.h>

void main()
{
        int i;
        for(i=0;i<10000;i++)
        {
                if((0!=i%3)&&(0!=i%5))
                {
                        printf("%d  ",i);
                }
               
        }
}
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-8-22 22:12:23 | 显示全部楼层
逻辑符号错了 兄弟
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-8-22 22:15:32 | 显示全部楼层
绝影&瞬风 发表于 2012-8-22 21:06
貌似把代码改成这样,如下:
#include
int main()

你用的是什么编译器啊, 不同的编译器的范围不同.
在32位系统中int是4字节的,32bit,正整数取值范围,和以前的long是一样的,-2147483648 to 2147483647
在VC的环境中int 和 long 范围一样 .
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-8-23 00:16:55 | 显示全部楼层
你那个被3或5整除搞类人很费解呢
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-8-23 10:19:50 | 显示全部楼层
极品人渣。 发表于 2012-8-22 22:11
#include

void main()

目的是求和!!!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-8-23 10:22:05 | 显示全部楼层
cathe 发表于 2012-8-22 22:15
你用的是什么编译器啊, 不同的编译器的范围不同.
在32位系统中int是4字节的,32bit,正整数取值范围,和 ...

编译环境:VC++ 6.0
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-8-23 10:23:57 | 显示全部楼层
极品人渣。 发表于 2012-8-22 22:12
逻辑符号错了 兄弟

真的
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-8-23 10:26:36 | 显示全部楼层
代码应该是正确的呀 360截图20120823101546375.jpg
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-8-23 10:27:27 | 显示全部楼层
注意理解“不能被3或5整除的整数”
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-8-23 10:30:03 | 显示全部楼层
Dzqjdhx 发表于 2012-8-23 10:26
代码应该是正确的呀

不符合题意
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-8-23 11:01:45 | 显示全部楼层
改成10,结果是45有什么问题吗。不能被3或5整除,1,2,3,4,5,6,7,8,9都符合条件啊
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-8-23 11:05:02 | 显示全部楼层
Seandor 发表于 2012-8-23 11:01
改成10,结果是45有什么问题吗。不能被3或5整除,1,2,3,4,5,6,7,8,9都符合条件啊

什么是被整除,就是没有余数!!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-8-23 11:12:01 | 显示全部楼层
绝影&瞬风 发表于 2012-8-23 11:05
什么是被整除,就是没有余数!!

不是没有余数,余数是0.
1 % 3 = 1.............余数不为0,所以1不能被3整除。
。。。。。
3 % 3 = 0..............显然能被3整除
但是
3 % 5 = 3..............余数不为0,所以3不能被5整除
只要不能被其中一个数整除都是满足条件的。有问题吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-8-23 11:23:24 | 显示全部楼层
Seandor 发表于 2012-8-23 11:12
不是没有余数,余数是0.
1 % 3 = 1.............余数不为0,所以1不能被3整除。
。。。。。

这样是说,也行,但题目题意,我还是搞不懂!!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-14 19:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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