m0_73608690 2022-09-09 20:28 采纳率: 100%
浏览 27
已结题

对1到100000求和结果出错的问题

在求1到100000之和的过程中 使用for循环

#include <iostream>                                //预编    译命令
#include <cmath>                                //预编译命令
using namespace std;

int main()                                        //主函数
{
    
    int sum = 0;                                //定义sum为整型变量,并初始化为0
    for (int i = 0.0; i < 100000; i = i + 1)    //for循环
    {                                            //循环体开始
        sum = sum + (i + 1);                    //累加求和
    }                                            //循环体结束

    cout << "自然数1~100000之和为" << sum << endl;

        

    return 0;
}                                                //主函数结束

结果算出来是705049936
想知道为什么会出现这样的情况 以及如何解决
谢谢大家

  • 写回答

2条回答 默认 最新

  • 快乐鹦鹉 2022-09-09 20:30
    关注

    int sum改为long long sum吧,因为和值超出了int的存储范围

    #include <iostream>                                //预编    译命令
    #include <cmath>                                //预编译命令
    using namespace std;
     
    int main()                                        //主函数
    {
        
        long long  sum = 0;                                //定义sum为整型变量,并初始化为0
        for (int  i = 0; i < 100000; i = i + 1)    //for循环
        {                                            //循环体开始
            sum = sum + (i + 1);                    //累加求和
        }                                            //循环体结束
     
        cout << "自然数1~100000之和为" << sum << endl;
     
            
        return 0;
    }                                                //主函数结束
     
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 9月17日
  • 已采纳回答 9月9日
  • 修改了问题 9月9日
  • 创建了问题 9月9日

悬赏问题

  • ¥15 keil里为什么main.c定义的函数在it.c调用不了
  • ¥50 切换TabTip键盘的输入法
  • ¥15 可否在不同线程中调用封装数据库操作的类
  • ¥15 微带串馈天线阵列每个阵元宽度计算
  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 Centos / PETGEM