啊哈磊_编程从这里起步

标题: 求1~100所有整数的合 [打印本页]

作者: w906786868    时间: 2013-8-14 01:50
标题: 求1~100所有整数的合
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <dos.h>
int main()
{
        int a,b,c;
    a=0;
    b=100;   
    while(a<=49)
    {a=a+1;
    b=b-1;
    c=a+b;
    }
    printf("%d ",c+150);
        system("color a9");
    Sleep(9999);
        return 0;
}
我错哪里了?而且为什么我在一个代码前面点空格,空格会替换代码,而不是在代码前面加空格!我用的就是啊哈C编译器

作者: rosynirvana    时间: 2013-8-14 01:50
因为你每次都给c重新赋值,c没有起到累加的作用
这样写太容易出错,不如直接累加,或者用等差数列公式……
作者: 超神级    时间: 2013-8-14 08:27
回贴时请遵守当地法律哦。{:soso__15960872840493620282_3:}
作者: 超神级    时间: 2013-8-14 08:27
{:soso__15960872840493620282_3:}
作者: Dsp    时间: 2013-8-14 08:41
#include <stdio.h>
#include <stdlib.h>
int main()
{        int a,b=0;
        for(a=1;a<=100;a++)
                b+=a;
        printf("%d",b);       
        system("pause");
        return 0;
}


作者: w906786868    时间: 2013-8-14 12:05
本帖最后由 w906786868 于 2013-8-14 12:10 编辑
rosynirvana 发表于 2013-8-14 02:26
因为你每次都给c重新赋值,c没有起到累加的作用
这样写太容易出错,不如直接累加,或者用等差数列公式……

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <dos.h>
int main()
{
    int a,b,c,d;
    a=0;
    b=100;  
    d=0;
    while(a<=49)
    {a=a+1;
     b=b-1;
     c=a+b;
     d=c+d;
    }
    printf("%d ",d+150);
        system("color a9");
    Sleep(9999);
        return 0;
}
这样为什么还是错的
作者: rosynirvana    时间: 2013-8-14 12:38
w906786868 发表于 2013-8-14 12:05
#include
#include
#include

自己trace一下就知道了
a的值是1,2...50
b的值是99,98...50
所以你多加了一个50,最后d要加上100然后减掉50
普通的off one error
所以说不要这么写,容易出错
作者: uir1393513835    时间: 2013-8-15 20:29
至于空格的问题,很可能是你误按了Insert键

百度百科内容:
鼠标点击可输入框后会出现闪动的光标. 一般情况下,Windows系统默认光标位置插入字符,而光标向后移动,即输入时对光标后字符无影响. 但是Insert是嵌入,即插入并覆盖,所以当按下Insert键后再输入,光标后的字符会被消去,即被当前输入字符替换掉,再次按下后则会还原到默认插入状态.




欢迎光临 啊哈磊_编程从这里起步 (https://bbs.codeaha.com/) Powered by Discuz! X3.2