C++高手帮忙看下哪里错了 求调和平均数 直到输入0为止

2025-01-06 06:45:35
推荐回答(5个)
回答1:

上半年你做一点点的优化,我觉得后半部分的算法或某些问题,或者程序BUG
上半年的结果,是不是你想要达到的效果,不知道

INT I = 0,Z = 0;双A [20];字符B [20];

双率= 10.0,ITEMP = 0.0;

memset的( A,0,sizeof(A)的);

memset的(B,0,sizeof(b)条)的;

(I = 0; {

(阵列[I]> = '0'&&数组[I] <= '9')

{

(率== 10.0)

ITEMP = ITEMP *汇率+(数组[I] - '0');

其他

{

ITEMP = ITEMP +速度*(数组[I] - '0');
>率= rate/10;

}

}

其他(数组[I] =='。')

率= 0.1;

其他(阵列[1] =='+'| |阵列[I] ==' - '| |阵列[I] =='*'| |数组[0] =='/')

{
> A [Z] = ITEMP; ITEMP = 0; Z + +;

B [Z] =数组[]; Z + +;

率= 10.0;

}
> {

的printf(“请输入正确的数据!\ N”);

返回-1;

}

A [Z] = ITEMP; / /保存置于外循环的最后一个号码

= Z;

运行调试结果:

邀请进入公式:

2 +5 * 6 / 3-1

2 +5 * 6 / 3-1

A [0] = 2.00

B [0] =

1 [1] = 0.00

B [1] = +

A [2] = 5.00

B [2] =

A [3] = 0.00

B [3] = *

A [ 4] = 6.00

B [4] =

A [5] = 0.00

B [5] = /

一个[6] = 3.00

B [6 ] =

一个[7] = 0.00

B [7] = -

A [8] = 1.00
B [8] =

回答2:

for(i=0;;i++);

//for 循环后面的分号去掉,不然是是循环
判断最好放到前面去 ,而且加一句 x+y ==0 的情况,以免发生CPU除法0中断

回答3:

if(x*y==0)break;这一句调前。
在输入x和y后就立即判断是否为0
不然按照你的代码,
z=2*x*y/(x+y);

这句会出错。

回答4:

你的程序里,当输入的x和y都为0时,除数为0了,程序会出错。

你是指这个问题吗?

回答5:

int main9()
{
int i,x,y,z;
for(i=0;;i++)// 这里多了分号“;”
{
cout<<"please give x and y";
cin>>x>>y;
z=2*x*y/(x+y);
cout< if(x*y==0)break;
}
return 0;
}