注册 登录
编程论坛 C++教室

第一个C++程序出错了!请大家指教!谢谢!

独孤小梦 发布于 2008-08-03 22:33, 1457 次点击
先谢谢大家能看我的帖,谢谢!问题如下:
我编译这个程序,不知道那里错了,下面这个不能编译成功!
#include<iostream>
using namespace
void main()
{
    int a[20],i,b=0;
    cout<<"输入20个数:""\n";
    for(i=0;i<=20;i++)
        cin>>a[i];
    for(i=0;i<=20;i++)
        b+=a[i];
    cout<<b<<endl;
}


#include<iostream.h>
void main()
{
    int a[20],i,b=0;
    cout<<"输入20个数:""\n";
    for(i=0;i<=20;i++)
        cin>>a[i];
    for(i=0;i<=20;i++)
        b+=a[i];
    cout<<b<<endl;
}
这个又能编译出来!能计算出结果,但是最后程序出错!不知道哪里不对,我书上现在还没看到数组的方法,完全是靠C的基础来编^
我刚看到一个题目简单,就想用C++试下,可是出现这样的错!不知道哪里不对!请指教!谢谢!
9 回复
#2
独孤小梦2008-08-03 22:35
哦,是不是数组的越界问题啊?  for(i=0;i<20;i++)这样就对了?
但是为什么第一个不能编译出来呢?
#3
mark02892008-08-04 00:04
should be "using namespace std"
#4
mark02892008-08-04 00:04
最后掉了个分号
#5
mark02892008-08-04 00:21
我是这样写的
#include<iostream>
using namespace std;

int main()
{
    int a[5],i,b=0;
    cout<<"输入5个数:\n";

    for(i=0;i<5;i++)
        cin>>a[i];

    for(i=0;i<5;i++)
        b+=a[i];
        
    cout<<"b="<<b<<endl;
   
    return 0;
}
试过了,可以通过编译
#6
独孤小梦2008-08-04 00:24
恩,谢谢了!关于这个using namespace std;大概以后会学到吧,先放一放!
#7
xiaochunccx2008-08-04 18:04
很显然你的数组越界了
int a[20],i,b=0;
    cout<<"输入20个数:""\n";
    for(i=0;i<=20;i++)
        cin>>a[i];
    for(i=0;i<=20;i++)
        b+=a[i];
    cout<<b<<endl;
应改为
int a[20],i,b=0;
    cout<<"输入20个数:""\n";
    for(i=0;i<20;i++)
        cin>>a[i];
    for(i=0;i<20;i++)
        b+=a[i];
    cout<<b<<endl;
#8
独孤剑魔2008-08-05 09:56
#include<iostream>
using namespace std;//需要引进std命名空间;
void main()
{
    int a[20],i,b=0;
    cout<<"输入20个数:"<<'\n';
    for(i=0;i<20;i++)//数组下标从0开始,所以不可以大于等于20,除非你设置的i的初值为1时.
        cin>>a[i];
    for(i=0;i<20;i++)
        b+=a[i];
    cout<<b<<endl;
}

[[it] 本帖最后由 独孤剑魔 于 2008-8-5 09:59 编辑 [/it]]
#9
独孤剑魔2008-08-05 10:02
[bo][un]独孤小梦[/un] 在 2008-8-4 00:24 的发言:[/bo]

恩,谢谢了!关于这个using namespace std;大概以后会学到吧,先放一放!

你可以先不引入,使用时就 std::cout/std::cin
不过你不觉得麻烦么??
或者可以
using std::cout;
using std::cin;

以后再写的时候,就可以省略std::了,不过也没有using namespace std;方便,不过开始的时候建议你使用上面那种。
#10
细雨斜飞2008-08-10 15:04
//The first one:
#include<iostream>
using namespace std;
void main()
{
    int a[10],i,b=0;
    cout<<"输入10个数:""\n"<<endl;
        
    
    for(i=0;i<=9;i++)
    {
        cout<<"请输入第"<<i+1<<"个数:"<<endl;
        cin>>a[i];
    }
    //---------------------------------------------
    for(i=0;i<=9;i++)
        b+=a[i];
    cout<<b<<endl;
}
// The second one:
#include<iostream.h>
void main()
{
    int a[10],i,b=0;
    cout<<"输入10个数:""\n";
    for(i=0;i<=9;i++)
        cin>>a[i];   // There is another way:  Using " cin>>a" instead of " for(i=0;i<=9; i++) cin>>a[i]" .
    for(i=0;i<=9;i++)
        b+=a[i];
    cout<<"the result is :"<<b<<endl;
}
1