java 输入输出数组有问题
importjava.util.Scanner;publicclassTest{staticdoublenp=10;staticdoublee;staticdoublee...
import java.util.Scanner;
public class Test {
static double np = 10;
static double e;
static double e2;
static double sum;
static double sum2;
double grade;
static double a[] = new double[(int) np];
static void getnumber() throws ArithmeticException {
for (double i = 0; i < np; i++) {
Scanner cin = new Scanner(System.in);
System.out.println("shuru");
double grade = cin.nextInt();
if (grade < 0.0 || grade > 100.0) {
throw new ArithmeticException("成绩值错误");
} else {
a[(int) i] = grade;
}
}
for (double i = 0; i < np; i++) {
System.out.println("a["+i+"]=" + a[(int) i]);
}
}
static void avegrade() {
for(int i1=0,i1<np,int i1;
i1++ ){
if(a[i1]>=60){
sum=sum+a[i1];
}
else{
sum2=sum2+a[i1];
}
}
e=sum/np;
e2=sum2/np;
}
public static void main(String args[]) {
try{getnumber();}
catch(ArithmeticException e){
System.out.println("发生异常:" + e.getMessage());
}
avegrade();
System.out.println("及格平均分:"+e+"\n");
}
}
算不出平均值 展开
public class Test {
static double np = 10;
static double e;
static double e2;
static double sum;
static double sum2;
double grade;
static double a[] = new double[(int) np];
static void getnumber() throws ArithmeticException {
for (double i = 0; i < np; i++) {
Scanner cin = new Scanner(System.in);
System.out.println("shuru");
double grade = cin.nextInt();
if (grade < 0.0 || grade > 100.0) {
throw new ArithmeticException("成绩值错误");
} else {
a[(int) i] = grade;
}
}
for (double i = 0; i < np; i++) {
System.out.println("a["+i+"]=" + a[(int) i]);
}
}
static void avegrade() {
for(int i1=0,i1<np,int i1;
i1++ ){
if(a[i1]>=60){
sum=sum+a[i1];
}
else{
sum2=sum2+a[i1];
}
}
e=sum/np;
e2=sum2/np;
}
public static void main(String args[]) {
try{getnumber();}
catch(ArithmeticException e){
System.out.println("发生异常:" + e.getMessage());
}
avegrade();
System.out.println("及格平均分:"+e+"\n");
}
}
算不出平均值 展开
4个回答
2013-10-30
展开全部
package com.test1;
import java.util.Scanner;
public class Test {
int size = 3;
int e=0;
int e2=0;
double pass=0;
double notPass=0;
double score=0;
double a[] = new double[size];
public void getnumber() {
for (int i = 0; i < size; i++) {
Scanner s = new Scanner(System.in);
System.out.println("输入:");
double score = s.nextDouble();
if (score < 0.0 || score > 100.0) {
System.out.println("输入成绩值错误!");
} else {
a[i] = score;
}
}
for (int i = 0; i < a.length; i++) {
System.out.println("第"+(i+1)+"个成绩是:" + a[i]);
}
}
public void avegrade() {
for(int i=0;i<a.length;i++ ){
if(a[i]>=60){
pass+=a[i];
e++;
}
else{
notPass+=a[i];
e2++;
}
}
System.out.println("及格平均分:"+pass/e);
System.out.println("不及格平均分:"+notPass/e2);
}
public static void main(String args[]) {
// try{getnumber();}
// catch(ArithmeticException e){
// System.out.println("发生异常:" + e.getMessage());
// }
// avegrade();
// System.out.println("及格平均分:"+e+"\n");
Test t = new Test();
t.getnumber();
t.avegrade();
}
}
这样是规范正确的写法
import java.util.Scanner;
public class Test {
int size = 3;
int e=0;
int e2=0;
double pass=0;
double notPass=0;
double score=0;
double a[] = new double[size];
public void getnumber() {
for (int i = 0; i < size; i++) {
Scanner s = new Scanner(System.in);
System.out.println("输入:");
double score = s.nextDouble();
if (score < 0.0 || score > 100.0) {
System.out.println("输入成绩值错误!");
} else {
a[i] = score;
}
}
for (int i = 0; i < a.length; i++) {
System.out.println("第"+(i+1)+"个成绩是:" + a[i]);
}
}
public void avegrade() {
for(int i=0;i<a.length;i++ ){
if(a[i]>=60){
pass+=a[i];
e++;
}
else{
notPass+=a[i];
e2++;
}
}
System.out.println("及格平均分:"+pass/e);
System.out.println("不及格平均分:"+notPass/e2);
}
public static void main(String args[]) {
// try{getnumber();}
// catch(ArithmeticException e){
// System.out.println("发生异常:" + e.getMessage());
// }
// avegrade();
// System.out.println("及格平均分:"+e+"\n");
Test t = new Test();
t.getnumber();
t.avegrade();
}
}
这样是规范正确的写法
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for(int i1=0,i1<np,int i1;
i1++ ){
这个for语句都写错了
for(int i1=0;i1<np;i1++ ){
还有就是第一个for的i为什么要定义为double类型呢?np为什么要定义为double?数组下标最好定义为int类型,不要强转,
i1++ ){
这个for语句都写错了
for(int i1=0;i1<np;i1++ ){
还有就是第一个for的i为什么要定义为double类型呢?np为什么要定义为double?数组下标最好定义为int类型,不要强转,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我把你的代码复制上去,能算出来啊
下面是运算结果
a[0.0]=10.0
a[1.0]=20.0
a[2.0]=50.0
a[3.0]=90.0
a[4.0]=80.0
a[5.0]=88.0
a[6.0]=33.0
a[7.0]=94.0
a[8.0]=98.0
a[9.0]=88.0
及格平均分:53.8
下面是运算结果
a[0.0]=10.0
a[1.0]=20.0
a[2.0]=50.0
a[3.0]=90.0
a[4.0]=80.0
a[5.0]=88.0
a[6.0]=33.0
a[7.0]=94.0
a[8.0]=98.0
a[9.0]=88.0
及格平均分:53.8
更多追问追答
追答
你最下面那个for的条件是不是应该(int i1=0;i1<np;i1++)
for(int i1=0,i1<np,int i1;
i1++ ){
if(a[i1]>=60){
sum=sum+a[i1];
}
else{
sum2=sum2+a[i1];
}
}
e=sum/np;
e2=sum2/np;
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
static 只能被static访问,其他的都不行,这是一个规范
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询