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

帮我看一下为什么没有答案输出(程序没错!)

ku_klox 发布于 2010-06-12 21:36, 847 次点击
#include <iostream.h>
int main(void)
{
    int a[1000];
    int n=0;
    while(cin>>a[n])
    {
        n++;
    }
    int sum=0;
    for(int i=0;i<n;i++)
    {
        sum=sum+a[i];
    }
    cout<<sum<<endl;
    return 0;
}
9 回复
#2
冰点小爱2010-06-12 22:04
程序代码:
#include <iostream.h>
int main(void)
{
    int a[1000];
    int n;
    cout<<"要输入几个数:"<<endl;
    cin>>n;
    cout<<"输入要加和的数:"<<endl;
    for(int j=0;j<n;j++)
    {
        cin>>a[j];
    }
   
    int sum=0;
    for(int i=0;i<n;i++)
    {
        sum+=a[i];
    }
    cout<<"sum="<<sum<<endl;
    return 0;
}

无耐,我写不出来,按你那个。我只有改一下了。反正功能一样。
#3
南国利剑2010-06-12 23:06
回复 楼主 ku_klox
你写的while循环是一个死循环,即使输入0,也无法跳出循环。
我按你的意思改了一下,你看看。
程序代码:
#include <iostream.h>
int main(void)
{
    int a[1000];
    int n=0;
    cin>>a[n];
    while(a[n])
    {
        n++;
        cin>>a[n];
    }
    int sum=0;
    for(int i=0;i<n;i++)
    {
        sum=sum+a[i];
    }
    cout<<sum<<endl;
    return 0;
}

 
#4
Isilendil2010-06-13 01:10
其实没错的,关键是那句
while(cin >> a[n])
这种语句很多教材都使用的
要是想结束的话,按下Ctrl+Z,再enter,强制结束输入,就可以了
#5
ku_klox2010-06-13 01:52
回复 3楼 南国利剑
#include <iostream.h>
int main(void)
{
    int a[1000];
    int n=0;
    while(cin>>a[n],a[n])
    {
        n++;
    }
    int sum=0;
    for(int i=0;i<n;i++)
    {
        sum=sum+a[i];
    }
    cout<<sum<<endl;
    return 0;
}


我自己刚刚做出来了,这样可以输出了~
#6
lucky5635912010-06-13 06:19
没有print或无限循环吗
#7
ekisstherain2010-06-13 10:08
以下是引用ku_klox在2010-6-13 01:52:09的发言:

#include
int main(void)
{
    int a[1000];
    int n=0;
    while(cin>>a[n],a[n])
    {
        n++;
    }
    int sum=0;
    for(int i=0;i


嗯,很好...
#8
gaoce2272010-06-13 11:59
回复 5楼 ku_klox
你while括号的是什么意思?
#9
lintaoyn2010-06-13 12:07
赞成四楼的说法。
#include <iostream.h>
int main(void)
{
    int a[1000];
    int n=0;
    while(cin>>a[n])
    {
        n++;
        if(n==1000)break;//输入1000个数跳出循环,提前跳出就按四楼说的做。
    }
    int sum=0;
    for(int i=0;i<n;i++)
    {
        sum=sum+a[i];
    }
    cout<<sum<<endl;
    return 0;
}
while(cin>>a[n],a[n])//按这样写。那我1,0,2这三个数要什么输入?把0去掉可能是个办法。
#10
autumn27792010-06-13 15:25
那个while像个无限循环
1