求指导为什么正确率总是0,而且答对的题数好像也不对为啥呀应该怎么改正呢求指导
import java.util.;
public class Game {
public static void main(String[] args) {
Scanner sca=new Scanner(System.in);
System.out.println("请输入题目数:");
int n=sca.nextInt();
int result=0,right=0;
double accuracy;
Random r=new Random();
for(int i=0;i<n;i++) {
int i1=r.nextInt(50);
int i2=r.nextInt(50);
int i3=r.nextInt(2);
if(i3==0) {
result=i1-12;
System.out.println(i1+"-"+i2+"=");}
else {
result=i1+i2;
System.out.println(i1+"+"+i2+"=");}
int a=sca.nextInt();
if(a==result) {
right+=1;
}}
accuracy=right/n;
long startTime=System.currentTimeMillis();
int sum=0;
for(int i=0;i<5000000;i++) {
sum+=i;
}
long endTime=System.currentTimeMillis();
System.out.print("答对了"+right+"题"+","+"正确率:"+accuracy100+"%"+","+"用时:"+(endTime-startTime)+"秒");
sca.close();}
}
你要把完整的代码发给我
改好了
错误的地方:你原来这样写的话,accuracy 是浮点型,而右边是整型,这样在赋值的时候就会变成 0.0
import java.util.*;
public class Game{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入题目数:");
int n = sc.nextInt();
int result = 0, right = 0;
double accuracy;
Random r = new Random();
for (int i = 0; i < n; i++) {
int i1 = r.nextInt(50);
int i2 = r.nextInt(50);
int i3 = r.nextInt(2);
if (i3 == 0) {
result = i1 - i2;
System.out.println(i1 + "-" + i2 + "=");
} else {
result = i1 + i2;
System.out.println(i1 + "+" + i2 + "=");
}
int a = sc.nextInt();
if (a == result) {
right += 1;
}
}
accuracy = right * 1.0 / n;
long startTime = System.currentTimeMillis();
int sum = 0;
for (int i = 0; i < 5000000; i++) {
sum += i;
}
long endTime = System.currentTimeMillis();
System.out.print("答对了" + right + "题" + "," + "正确率:" + accuracy * 100 + "%" + "," + "用时:" + (endTime - startTime) + "秒");
sc.close();
}
}
运行结果如下
源码发一下,别截图