哪位大神帮我修改以下啊,不懂哪里错了啊,还有java的字符读入怎么写啊,感激不尽啊!

importjava.util.Scanner;publicclassyoulishu{publicstaticvoidmain(String[]args){//TODO... import java.util.Scanner;

public class youlishu {

public static void main(String[] args)
{
// TODO Auto-generated method stub
Scanner reader = new Scanner(System.in);
int x = reader.nextInt();
String c = reader.next();
int y=reader.nextInt();
String t=reader.next();
int m = reader.nextInt();
String f = reader.next();
int n=reader.nextInt();
int r=1,flag;
if(t[0]=='+')
{
x=x*n+y*m;
y=y*n;
}
if(t[0]=='-')
{
x=x*n-y*m;
y*=n;
}
if(t[0]=='*')
{
x=x*m;
y=y*n;
}
if(t[0]=='/')
{
x*=n;
y*=m;
}
if(x/y>=1&&x%y==0)
{
System.out.println(x/y);
}
else
{
m=x;n=y;
while(r!=0)
{
if(x>y)
{
r=m%n;
m=n;
flag=n;
n=r;
}
if(x<y)
{
r=n%m;
n=m;
flag=n;
m=r;
}
}
System.out.println(x/flag+"/"+y/flag)
}
}
}
展开
 我来答
百度网友4c2588e
2012-03-19
知道答主
回答量:20
采纳率:0%
帮助的人:12.5万
展开全部
import java.util.Scanner;

public class YouliShu {

public static void main(String[] args)
{
// TODO Auto-generated method stub
Scanner reader = new Scanner(System.in);
int x = reader.nextInt();
String c = reader.next();
int y=reader.nextInt();
String t=reader.next();
int m = reader.nextInt();
String f = reader.next();
int n=reader.nextInt();
int r=1;
int flag;

if(t.charAt(0)=='+')
{
x=x*n+y*m;
y=y*n;
}
if(t.charAt(0)=='-')
{
x=x*n-y*m;
y*=n;
}
if(t.charAt(0)=='*')
{
x=x*m;
y=y*n;
}
if(t.charAt(0)=='/')
{
x*=n;
y*=m;
}
if(x/y>=1&&x%y==0)
{
System.out.println(x/y);
}
else
{
m=x;n=y;
while(r!=0)
{
if(x>y)
{
r=m%n;
m=n;
flag=n;
n=r;
}
if(x<y)
{
r=n%m;
n=m;
flag=n;
m=r;
}
}
// System.out.println(x/flag+"/"+y/flag);
}
}
}

首先你java中输入字符流等是没有问题的,但是读不能直接t[0]这样的读法,这是一个字符串,你要读它的首字符,要写成t.AtChar(0);另外java中的变量要赋初值,flag不赋初值默认为0;我没有具体看你的代码实现细节了,就改了点错误,所以把你最后一句system.out……给注释了,你自己再调试调试,你找出错误比我找出错误要学的多
渭水古今同7
2012-03-19 · 超过26用户采纳过TA的回答
知道答主
回答量:56
采纳率:0%
帮助的人:76.1万
展开全部
if(t[0]=='+') 这个t是字符串。不可以这样做。
如果有做。
一种方式是
char []tt=t.trim().toCharArray();
然后tt[0]=='+'
也有其他的方式。
if(t.trim().matches("\\+")){}
这个是正则表达式,当然还有其他方法。请查看String的API
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
海上货诸鱼X
2012-03-20
知道答主
回答量:36
采纳率:0%
帮助的人:29.4万
展开全部
import java.util.Scanner;

public class aaaaa {

public static void main(String[] args)
{
// TODO Auto-generated method stub
Scanner reader = new Scanner(System.in);
int x = reader.nextInt();
//String c = reader.next();
int y=reader.nextInt();
String t=reader.next();
char[] A=t.toCharArray();
int m = reader.nextInt();
//String f = reader.next();
int n=reader.nextInt();
int r=1,flag = 0;
if(A[0]=='+')
{
x=x*n+y*m;
y=y*n;
}
if(A[0]=='-')
{
x=x*n-y*m;
y*=n;
}
if(A[0]=='*')
{
x=x*m;
y=y*n;
}
if(A[0]=='/')
{
x*=n;
y*=m;
}
if(x/y>=1&&x%y==0)
{
System.out.println(x/y);
}
else
{
m=x;n=y;
while(r!=0)
{
if(x>y)
{
r=m%n;
m=n;
flag=n;
n=r;
}
if(x<y)
{
r=n%m;
n=m;
flag=n;
m=r;
}
}
System.out.println(x/flag+"/"+y/flag);
}
}
}
记住,给变量要赋初值。
还有你要输入的两个字符串都没用,不需要定义吧。
每一个System.out.println()结尾都要有";"。
java中字符串转化为字符数组,引用char[] A=B.toCharArray();A表示转换的数组的名字,B表示字符串的名字。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhaoyw_work
2012-03-19 · TA获得超过613个赞
知道小有建树答主
回答量:729
采纳率:100%
帮助的人:586万
展开全部
int t=reader.nextInt();
试试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式