문자와 연산자 (더하기 기호, 빼기 기호 및 문자 IE : 'b-d + e-f') 문자열과 일련의 문자로 구성된 표현식 입력을 감안할 때, 쉼표로 구분 된 변수/값 쌍 (예 : a = 1, b = 7, c = 3, d = 14)은 입력 된 표현식의 결과를 출력하는 프로그램을 작성합니다. 예를 들어 입력이 ("a + b + c - d")이고 파일 입력이 (a = 1, b = 7, c = 3, d = 14)이면 출력은 -3이됩니다. 안녕하세요, 4 문자를 추가하면 숫자를 출력하는 간단한 자바 코드를 수행하려고합니다. d-c + a + b와 같이 다른 조합을 사용하면 118.0과 같은 inccorect 번호를 부여합니다. 내 코드에 내 계산이 잘못 어디에 누군가가 말해 줄 수 ..숫자 출력이 잘못된 경우가 있습니다.
가 ValVarPairs.txt이 번호들> A = 100, B = 5, C = 10, D = 13
를 포함하면감사
이것은 내가 코딩 한 것입니다.
package com.ecsgrid;
import java.io.*;
public class testC {
public static void main(String[] args) {
int i = 0,j = 0;
double result, values[] = new double[4];
char k, operators[] = new char[3];
for (i = 0; i <= 2; i++)
operators[i] = '+'; // default is to add the values
File myfile;
StreamTokenizer tok;
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String InputText;
i = 0;
try {
myfile = new File("C:\\VarValPairs.txt");
tok = new StreamTokenizer(new FileReader(myfile));
tok.eolIsSignificant(false);
while ((tok.nextToken() != StreamTokenizer.TT_EOF) && (i <= 3)){
if ((tok.ttype == StreamTokenizer.TT_NUMBER))
values[i++] = tok.nval;
}
}
catch(FileNotFoundException e) { System.err.println(e); return; }
catch(IOException f) { System.out.println(f); return; }
System.out.println("Enter letters and operators:");
try {
InputText = in.readLine();
}
catch(IOException f) { System.out.println(f); return; }
for (i = 0; i < InputText.length(); i++)
{
k = InputText.charAt(i);
if ((k == '+') || (k == '-'))
{
if (j <= 2) operators[j++] = k;
}
}
result = values[0];
for (i = 0; i <= 2; i++){
if (operators[i] == '+')
result = result + values[i+1];
else
result = result - values[i+1];
}
System.out.println(result);
}
}
이것은 수업 과제가 아니며, 자신을 가르치려고 자바. 고마워요. 도움이된다면, 스마트 한 발언을 자신에게 부탁하십시오. – soupi7
http://stackoverflow.com/questions/19572320/output-incorrect/19572400#19572400 당신이 만든 중복 질문에 대답했습니다. @ [A mod 또는 알고있는 사람] 대답을 삭제하고 여기에 다시 게시해야합니까? – Cruncher