输不出总成绩和平均成绩那里错了?红三角形那里为什么 用n会报错?

输不出总成绩和平均成绩那里错了?红三角形那里为什么 用n会报错?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

11回答
Q_Jack_Q 2018-04-03 11:35:10
import java.util.Scanner;
public class TestNu {
	public static void main(String[] args) {
	   //定义一个三行两列的整型二维数组intArray
		int[][] intArray=new int[3][2];
	   //从键盘输入学生成绩,要求输入顺序与效果图一致
		Scanner sc = new Scanner(System.in);
		for(int i = 0;i<intArray.length;i++){
			System.out.println("请输入第"+(i+1)+"个学生的语文成绩");
			intArray[i][0] = sc.nextInt();
			System.out.println("请输入第"+(i+1)+"个学生的数学成绩");
			intArray[i][1] = sc.nextInt();
		}
		
	   //求语文的总成绩和平均分
		int sum_chinese = 0;
		int avg_chinese = 0;
		for(int i =0;i<intArray.length;i++){
			sum_chinese +=intArray[i][0];
		}
		avg_chinese = sum_chinese/intArray.length;
		System.out.println("语文的总成绩为:"+sum_chinese);
		System.out.println("语文的平均分为:"+avg_chinese);
	   //求数学的总成绩和平均分
		int sum_math = 0;
		int avg_math = 0;
		for(int i =0;i<intArray.length;i++){
			sum_math +=intArray[i][1];
		}
		avg_math = sum_math/intArray.length;
		System.out.println("数学的总成绩为:"+sum_math);
		System.out.println("数学的平均分为:"+avg_math);
		sc.close();
 	}
}


月苼 2018-03-28 20:42:25

整型n被定义在循环中,就是循环中的局部变量,后面的输出是循环外面,n还没有被定义

shuaishuai66 2018-03-23 21:40:49

这是我的思路,在我的电脑上完美运行,你看看你能否看懂。

shuaishuai66 2018-03-23 21:39:52

public static void main(String[] args) {

//定义一个三行两列的整型二维数组intArray

      //从键盘输入学生成绩,要求输入顺序与效果图一致

      //求语文的总成绩和平均分

      //求数学的总成绩和平均分

Scanner score=new Scanner(System.in);

int[][] intarry=new int[3][2];

for(int i=0;i<intarry.length;i++) {

for(int j=0;j<intarry[i].length;j++) {

if(i==0) {System.out.println("请输入第"+(j+1)+"个同学的语文成绩");

intarry[0][j]=score.nextInt();

}else if(i==1) {

System.out.println("请输入第"+(j+1)+"个同学的英语成绩");

intarry[1][j]=score.nextInt();

}else if(i==2) {

System.out.println("请输入第"+(j+1)+"个同学的数学成绩");

intarry[2][j]=score.nextInt();

}

}

}

//语文成绩总和

int sum1=0;

sum1=intarry[0][0]+intarry[0][1];

//英语成绩总和

int sum2;

sum2=intarry[1][0]+intarry[1][1];

//英语成绩总和

int sum3;

sum3=intarry[2][0]+intarry[2][1];

System.out.println("语文成绩的总和为:"+sum1+"\n"+"数学成绩总和为:"+sum3+

"\n"+"英语成绩的总和为:"+sum2);

}


}



  • 欢迎提出宝贵意见!
    2018-03-23 21:41:17
风中随影 2018-03-22 14:08:55

你这边的n是在for循环里面定义的,他的作用范围就只在for循环对应的大括号里面;

而你在红三角那边进行调用的时候已经超出他的定义范围

无风三尺浪 2018-03-17 20:54:25

package day01;

/*这个是简化后的,这样看你思路应该更清晰一点。

 * */

import java.util.Scanner;

public class ScoreDemo {


 public static void main(String[] args) {

int [] [] intArray = new int[3][2];

int languageSum = 0;

int mathSum = 0;

for(int i = 0;i <intArray.length;i++) {

Scanner input = new Scanner(System.in);

for(int j = 0; j < intArray[i].length;j++){

if(i == i && j == 0) {

System.out.println("请输入第"+(i+1)+"同学的语文成绩");

intArray[i][j] = input.nextInt();

}else if(i == i && j == 1) {

                    System.out.println("请输入第"+(i+1)+"同学的数学成绩");

intArray[i][j] = input.nextInt();

}

}

languageSum = intArray[i][0] +languageSum;

mathSum = intArray[i][1] +mathSum;

}

System.out.println("语文总成绩为:"+languageSum);

System.out.println("语文的平均成绩为:"+(languageSum/3));

System.out.println("数学总成绩为:"+mathSum);

System.out.println("数学平均成绩为:"+mathSum/3);

}


}


无风三尺浪 2018-03-17 20:46:28

package day01;

/*在一个二维数组中存放了三名学生的语文和数学的成绩,

 * 从键盘输入三名学生的成绩存储到二维数组中,

 * 分别求语文和数学的总成绩及平均分并输出。


运行效果如下:

 * */

import java.util.Scanner;

public class ScoreDemo {


 public static void main(String[] args) {

int [] [] intArray = new int[3][2];

int languageSum = 0;

int mathSum = 0;

for(int i = 0;i <intArray.length;i++) {

Scanner input = new Scanner(System.in);

for(int j = 0; j < intArray[i].length;j++){

if(i == 0 && j == 0) {

System.out.println("请输入第"+(i+1)+"同学的语文成绩");

intArray[i][j] = input.nextInt();

}else if(i == 0 && j == 1) {

                    System.out.println("请输入第"+(i+1)+"同学的数学成绩");

intArray[i][j] = input.nextInt();

}else if(i == 1 && j == 0) {

System.out.println("请输入第"+(i+1)+"同学的语文成绩");

intArray[i][j] = input.nextInt();

}else if(i == 1 && j == 1) {

System.out.println("请输入第"+(i+1)+"同学的数学成绩");

intArray[i][j] = input.nextInt();

}else if(i == 2 && j == 0) {

System.out.println("请输入第"+(i+1)+"同学的语文成绩");

intArray[i][j] = input.nextInt();

}else if(i == 2 && j == 1) {

System.out.println("请输入第"+(i+1)+"同学的数学成绩");

intArray[i][j] = input.nextInt();

}

}

languageSum = intArray[i][0] +languageSum;

mathSum = intArray[i][1] +mathSum;

}

System.out.println("语文总成绩为:"+languageSum);

System.out.println("语文的平均成绩为:"+(languageSum/3));

System.out.println("数学总成绩为:"+mathSum);

System.out.println("数学平均成绩为:"+mathSum/3);

}


}

这样写才对

  • package day01; /*在一个二维数组中存放了三名学生的语文和数学的成绩, * 从键盘输入三名学生的成绩存储到二维数组中, * 分别求语文和数学的总成绩及平均分并输出。 运行效果如下: * */ import java.util.Scanner; public class ScoreDemo { public static void main(String[] args) { int [] [] intArray = new int[3][2]; int languageSum = 0; int mathSum = 0; for(int i = 0;i <intArray.length;i++) { Scanner input = new Scanner(System.in); for(int j = 0; j < intArray[i].length;j++){ if(i == i && j == 0) { System.out.println("请输入第"+(i+1)+"同学的语文成绩"); intArray[i][j] = input.nextInt(); }else if(i == i && j == 1) { System.out.println("请输入第"+(i+1)+"同学的数学成绩"); intArray[i][j] = input.nextInt(); } } languageSum = intArray[i][0] +languageSum; mathSum = intArray[i][1] +mathSum; } System.out.println("语文总成绩为:"+languageSum); System.out.println("语文的平均成绩为:"+(languageSum/3)); System.out.println("数学总成绩为:"+mathSum); System.out.println("数学平均成绩为:"+mathSum/3); } }
    2018-03-17 20:52:44
无风三尺浪 2018-03-17 20:45:58

兄弟,你感觉你写的循环能运行起来吗?

  • 提问者 取名字很头疼 #1
    有些忘了。当时解除n那位置的报错,好像是能运行起来的。
    2018-03-17 21:39:34
  • 无风三尺浪 回复 提问者 取名字很头疼 #2
    首先你接收输入的对象都搞错了,是传递到数组当中,而不是重新声明一个变量。
    2018-03-17 23:53:43
  • 提问者 取名字很头疼 回复 无风三尺浪 #3
    嗯,你这一说有点印象,当时好像也改了这个。现在都不想再去回看之前写的了。。
    2018-03-18 00:17:36
慕侠8235832 2018-03-12 00:16:43

因为n的值只在for循环中有效,for(int n=1;n<=3;n++){.......},你的n是在for循环中定义的

慕圣5552787 2018-03-11 20:37:21

int[][] a = new int[3][2];

Scanner sc = new Scanner(System.in);

System.out.println("请输入第一个学生的语文成绩:");

int q = a[0][0] = sc.nextInt();

System.out.println("请输入第一个学生的数学成绩:");

int w = a[0][1] = sc.nextInt();

System.out.println("请输入第二个学生的语文成绩:");

int e = a[1][0] = sc.nextInt();

System.out.println("请输入第二个学生的数学成绩:");

int r = a[1][1] = sc.nextInt();

System.out.println("请输入第三个学生的语文成绩:");

int t = a[2][0] = sc.nextInt();

System.out.println("请输入第三个学生的数学成绩:");

int y = a[2][1] = sc.nextInt();

System.out.println("语文的总成绩为:" + (q + e + t));

System.out.println("语文的平均分为:" + (q + e + t) / 3);

System.out.println("数学的总成绩为:" + (w + r + y));

System.out.println("数学的平均分为:" + (w + r + y) / 3);


慕圣5552787 2018-03-11 20:03:38

平均直接除3就行了。

  • 提问者 取名字很头疼 #1
    嗯嗯,上一个输出就是除以3,我想搞清楚我用n为什么不行。还有就是它一直都输不出总成绩和平均分的值。
    2018-03-11 20:06:59
  • 我看不懂你的循环
    2018-03-11 20:36:54
  • 你的n是定义在循环里的局部变量,但是离开这个循环之后,你又引用了,然而程序不知道该去哪里引用这个变量了,因为循环外并未声明。
    2018-03-13 23:36:33
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师