为什么这个程序只能运行一次,帮忙看一下。
这个程序的问题:只能第一次运行成功,第二次以上它都自动运行了,看问题出在哪里。我正在找...........#include <iostream.h>
int main()
{
for(int i=1;i<10;i++)
{
int a=0,b=0;
float c=0;
cout<<"输入一组数字,求其平均值,输入完毕时,输入ok即可。"<<endl;
for(;;)
{
cout<<"输入这组的第"<<b+1<<"个数据:";
cin>>a;
if(a==char()) break;
b=b+1;
c=c+b;
}
cout<<"这"<<b+1<<"组数的平均值:"<<c/b<<endl;
}
}
还有
...
c=c+b;
...
让人很纳闷你的程序是否在求前N项和的平均值[tk13] 类型有问题 四楼和五楼知道问题在哪吗?这个程序运行第一次是没问题的,只是后面的循环都自动运行了,c=c+b应该没问题的。
我还在找........................
我还在找.............[tk30] [tk08] 很有问题吗,运行不玩了回复 9# 守鹤 的帖子
if(a==char()) break;这句话有问题啊!改成if( a == 12345) break,或任何其他一个数都可以,char()用法错了.还有,输入的数是a,怎么用c = c + b计算输入的数的总和阿?改成c = c + a才对吧?这样改以后,我运行了一下,没问题的.回复 1# keqiang 的帖子
if(a==char()) break;这句话有问题啊!改成if( a == 12345) break,或任何其他一个数都可以,char()用法错了.还有,输入的数是a,怎么用c = c + b计算输入的数的总和阿?改成c = c + a才对吧?这样改以后,我运行了一下,没问题的. 用数字来结束输入计算平均值,这种方法我也试过了,是可以的啊。但我想输入ok结束,这就出现问题了。谁发现问题在哪啊?回复 5# kongwei254 的帖子
我运行了下没有错的,只要你不是输入的字符串,楼上说的对,但是你那if( a == char()) break中。显得很幼稚。既然你设定了a为int,输入字符就出错。不用你做判断。还不如在数字间做判断。 [em12]
我直接重写了一个
#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;
} 谢谢十五楼。十五楼可以在我那个程序的基础上,编一个以ok结束,并无错运行。 首先,char()用错。它只是判断是不是为空。
在者,你最好选用if(!cin),来判断是不是输入正确;
最后,还要加上清空cin的函数 不懂楼上说什么 if(a==char()) break;
b=b+1;
c=c+b
if(a==0) break;///
b=b+1;
c=c+a;/// 函数运行前 先将stream清空试试
页:
[1]
2
