当前位置: 代码迷 >> C语言 >> 大家帮忙看看我这句循环函数错在哪了?
  详细解决方案

大家帮忙看看我这句循环函数错在哪了?

热度:118   发布时间:2008-04-12 12:55:59.0
我现在在网吧,所以用的是绿色版的my-tc 和win-tc 方便
但两个运行出的结构都是:-17561  郁闷~~
----------------解决方案--------------------------------------------------------
tc2.0上调试,溢出问题,现给出解决方案代码
#include <stdio.h>
int main()
{
    int i;
    float sum=0;
    for(i=1;i<=100;i++)
    {
        if(i<=50)
            sum+=i+i*i;
        else sum+=i;
    }
    printf("The answer is :%.0f",sum);
    getchar();
    return 0;
}
调试成功
指出:不同编译器上对同种数据类型的变量分配的存储空间可能不同,如本例,修改前在gcc上调试通过,在tc2.0上溢出
----------------解决方案--------------------------------------------------------
没有问题,可以运行
----------------解决方案--------------------------------------------------------
all定义错了
把all定义成double型就可以了
----------------解决方案--------------------------------------------------------
printf("The answer is :%d",all);  
既然你定义的是长整形
printf("The answer is :%ld",all);
----------------解决方案--------------------------------------------------------
[bo]以下是引用 [un]yd4433[/un] 在 2008-4-12 16:39 的发言:[/bo]

printf("The answer is :%d",all);  
既然你定义的是长整形
printf("The answer is :%ld",all);

哦,原来如此,经改动后值正常,谢谢!
----------------解决方案--------------------------------------------------------
说你错了就错了  自己找到错哪  让别人说出来根本记不住
----------------解决方案--------------------------------------------------------
  相关解决方案