搜索
查看: 2467|回复: 12
打印 上一主题 下一主题

谁知道哪里错了

[复制链接]
跳转到指定楼层
楼主
发表于 2013-5-29 15:16:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
#include <stdio.h>
#include <stdlib.h>
int main()
{
    long int i,sum=0;
    for(i=1;i<=123456;i++)
    {
    if(i%7==0||i%10==7)printf("i=%d",i);
    sum=sum+i;
    }
    printf("sum=%d\n",sum);
    system("pause");
return 0;
}
如果i〈=10000可以算 要是大于100000就不行了
是什么原因呢
希望有人帮我一下

沙发
 楼主| 发表于 2013-5-29 15:19:14 | 只看该作者
能算12345
就是不能算123456
板凳
 楼主| 发表于 2013-5-29 15:19:49 | 只看该作者
谁来解救我啊
地板
 楼主| 发表于 2013-5-29 15:20:58 | 只看该作者
是不是结果超于定义域了?
怎么解决
5#
 楼主| 发表于 2013-5-29 15:27:07 | 只看该作者
木有人鸟我 我自己鸟自己拉
6#
发表于 2013-5-29 22:16:15 | 只看该作者
 确实超出值域了,你定义整型变量用unsigned long 定义 它的值域是0~4294967695
7#
 楼主| 发表于 2013-5-29 22:48:33 | 只看该作者
吐槽有理 发表于 2013-5-29 22:16
&nbsp;确实超出值域了,你定义整型变量用unsigned long 定义 它的值域是0~4294967695

我试试看 谢谢 啊
8#
 楼主| 发表于 2013-5-29 22:51:06 | 只看该作者
ralf 发表于 2013-5-29 22:48
我试试看 谢谢 啊

试了 还是不行
9#
发表于 2013-5-29 23:56:21 | 只看该作者
请问不行具体是个什么表现呢?
10#
发表于 2013-5-29 23:57:55 | 只看该作者
吐槽有理 发表于 2013-5-29 22:16
 确实超出值域了,你定义整型变量用unsigned long 定义 它的值域是0~4294967695

这个数据大小,现在一般的环境中不会越界
11#
 楼主| 发表于 2013-5-30 16:02:25 | 只看该作者
rosynirvana 发表于 2013-5-29 23:56
请问不行具体是个什么表现呢?

sum等于-969180896
而且i不是从7开始
12#
 楼主| 发表于 2013-5-30 16:06:11 | 只看该作者
rosynirvana 发表于 2013-5-29 23:56
请问不行具体是个什么表现呢?

是不是运行框是有限制的
当超过显示的内容就不行
13#
发表于 2013-5-30 16:34:06 | 只看该作者
你想要的是这样子吧
  1. if(i%7==0||i%10==7){
  2.   printf("i=%d ",i);
  3.   sum=sum+i;
  4. }
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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