如下程序,为什么do while 循环会停不下来?该怎么办?

#include "stdafx.h"
#include <iostream>
using namespace std;

int main()
{ cout<<"请输入运算表达式,以数字开头,分号结尾\n";

float num[500];
char opr[500];
int n=0,o=0;

do
{
cin>>num[n]>>opr[o]; //存入表达式
n++,o++;
}while(opr[o]!=';');

float b=0,s=0;
int i=0,j=0;

while (j<o) //读取表达式
{
switch(opr[j])
{
case '+' :s+=num[i];
case '-' :s-=num[i];
}

i++,j++;
}

cout<<s;
return 0;
}
写一个程序能读入并计算一个只包含加减运算的表达式,每个输入的数据都是浮点数,除第一个数以外,其余每个数前面都有一个运算符,如“23+43-233+234;”表达式以分号“;”结束。

繁星点点滴滴
浏览 226回答 1
1回答

三国纷争

do{cin>>num[n]>>opr[o]; //存入表达式 这里输入一个字符n++,o++; //这里o位置变了}while(opr[o]!=';'); //这里又想检查刚输入的o原位的数,所以,永远检查不到了!do{cin>>num[n]>>opr[o];n++,o++;}while(opr[o-1]!=';'); //取上一位
打开App,查看更多内容
随时随地看视频慕课网APP