| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 407 人关注过本帖
标题:运行出错
只看楼主 加入收藏
fydgo
Rank: 2
等 级:论坛游民
帖 子:57
专家分:10
注 册:2009-4-10
结帖率:73.33%
收藏
已结贴  问题点数:20 回复次数:1 
运行出错
题目是把5个donation值读入到一个double数组中,程序遇到非数字输入时将结束输入,并把这些数和币平均值大的值输出。
#include <iostream>
#include <cctype>
main()
{
    using namespace std;
    int n,i=0,sum=0,average;
    double number[5],donation;
    cout<<"enter a digit:\n";
    cin>>donation;
    while(!isalpha(donation))
    {
        number[i]=donation;
        i++;
        if(i==5)break;
        cin>>donation;
    }
    cout<<"these numbers are:\n";
    for(n=0;n<i;n++)
    {
        cout<<number[n]<<" ";
        sum+=number[n];
    }
    average=sum/n;
    cout<<"\nabove the average number is"<<average<<"\n";
    cout<<"larger than the average digit is:\n";
    for(n=0;n<i;n++)
    {
        if(number[n]>average)
            cout<<number[n]<<" ";
    }
}
为什么光输入数字时第一次运行成功但连续运行2-4次的话会出错呢(有时只能输入1个值)很奇怪,大家务必运行多次,在我这里运行4次的时候总出错。
还有当输入数字后输入字符串时程序出错  要怎么改才对,谢谢高手指点。
搜索更多相关主题的帖子: 运行 
2010-04-11 11:29
yyblackyy
Rank: 6Rank: 6
等 级:侠之大者
帖 子:98
专家分:457
注 册:2010-3-31
收藏
得分:20 
#include <iostream>              //改好的
using namespace std;
int main()
{
   
    int n,i=0,sum=0,average=0;
    double number[5]={0.0},donation=0.0;
    cout<<"enter a digit:\n";
   while(cin>>donation)
    {
        number[i]=donation;
        i++;
        if(i==5)break;
    }
  
    cout<<"these numbers are:\n";
    for(n=0;n<i;n++)
    {
        cout<<number[n]<<" ";
        sum+=number[n];
    }
    average=sum/n;
    cout<<"\nabove the average number is"<<average<<"\n";
    cout<<"larger than the average digit is:\n";
    for(n=0;n<i;n++)
    {
        if(number[n]>average)
            cout<<number[n]<<" ";
    }
return 0;
}
/******************************************
int num;
cin>>num;
如果输入时非int型则不写入num  这就是楼主错的地方吧
楼主的意思意思是输入字母时推出循序,但楼主如果第一次输入 5.0之类的那么楼主下次输入'a'之类的字符时,输入系统是不会把'a’写入的,应为楼主要的是
double型的,但输入是字符型,所以不接受,donation 的值还是原来的值,直到i==5 时才退出,这就导致了为什么输错后数组的值是同一个的问题
其实楼主只要简单的用while(cin>>donation) 就行了
2010-04-11 13:42
快速回复:运行出错
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.040748 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved