学习型 ASP/PHP/ASP.NET 主机 30元/年全能 ASP/PHP/ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付
轻松建立自己的群组,招兵买马   
发新话题
打印

为什么这个程序只能运行一次,帮忙看一下。

回复 1# keqiang 的帖子

if(a==char()) break;这句话有问题啊!改成if( a == 12345) break,或任何其他一个数都可以,char()用法错了.还有,输入的数是a,怎么用c = c + b计算输入的数的总和阿?改成c = c + a才对吧?这样改以后,我运行了一下,没问题的.

TOP

用数字来结束输入计算平均值,这种方法我也试过了,是可以的啊。但我想输入ok结束,这就出现问题了。谁发现问题在哪啊?

TOP

回复 5# kongwei254 的帖子

我运行了下没有错的,只要你不是输入的字符串,
楼上说的对,但是你那if( a == char()) break中。显得很幼稚。既然你设定了a为int,输入字符就出错。不用你做判断。还不如在数字间做判断。

TOP

TOP

我直接重写了一个

#include <cstdlib>
#include <iostream>
#include <cstring>

using namespace std;

int main(int argc, char *argv[])
{
    double x=0 ;//输入的数字
    double s=0;//和
    double average =0;//平均数
    char num[15],*p=num; //输入的字符串
    int i=0 ;//顺序记录
    cout<<"输入quit退出 并计算平均数\n";
    while(1){
            
            cout<<"请输入第 "<<i+1<<" 个数据并回车 "<<endl;
            cin>>p ;
            if(strcmp(p,"quit")==0)
            break;
            x = atof(p);
            i++;
            s=s+x;

           }
           
    if(i==0)
    average = 0;
    else      
    average = s/i;
    cout<<"共输入 "<<i<<" 个数 。平均数为\t"<<average<<endl;
    system("PAUSE");
   return EXIT_SUCCESS;
}

TOP

谢谢十五楼。十五楼可以在我那个程序的基础上,编一个以ok结束,并无错运行。

TOP

首先,char()用错。它只是判断是不是为空。
在者,你最好选用if(!cin),来判断是不是输入正确;
最后,还要加上清空cin的函数

TOP

不懂楼上说什么

TOP

if(a==char()) break;
b=b+1;
c=c+b


if(a==0) break;///
b=b+1;
c=c+a;///

TOP

函数运行前 先将stream清空试试
动于心而静如水

TOP

发新话题