package Q1;
import javax.swing.JOptionPane;
public class p97页490 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String stringnum=JOptionPane.showInputDialog("请输入有几个学生:");
int num=Integer.parseInt(stringnum);
char[] name=new char[num-1];
int[] mark=new int[num-1];
for(int i=1;i<=num;i++){
String stringname=JOptionPane.showInputDialog("请输入第"+i+"个学生的姓名");
name[i-1]=Integer.valueOf(stringname );
String stringmark=JOptionPane.showInputDialog("请输入第"+i+"个学生的分数");
mark[i-1]=Integer.parseInt(stringmark);
}
int max=0,max2=0,num1=0,num2=0;
for(int i=0;i<num;i++){
if(mark[i]>max)
max=mark[i];
num1=i;
}
for(int i=0;i<num;i++){
if(mark[i]>max2&&mark[i]!=max)
max2=mark[i];
num2=i;
}
JOptionPane.showMessageDialog(null, "最高分的学生是"+name[num1]+"\n第二高分的学生是"+name[num2]);
}
}
------解决方案--------------------
先用System.out.println(stringname),看看内容是啥先。
不过。。。你不会是编译错误吧?
name[i-1]=Integer.valueOf(stringname );
你的右括号和分号,都是中文的,应该修改为英文,否则无法通过编译。
------解决方案--------------------
再看了下,发现逻辑错的不是一点半点:
name[i-1]=Integer.valueOf(stringname);
名字,你拿来转为Integer?这能转换么?
如果你非要转为char,那也只能转为char[],比如 stringname.toCharArray();
但如果这样的话,你的char[] name,就要改为 char[][] name,否则放不下多个名字。
总的来说,比较乱,看有无好心人直接给你提供修改好的成品代码吧。
------解决方案--------------------
package Q1;
import javax.swing.JOptionPane;
public class p97页490 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String stringnum=JOptionPane.showInputDialog("请输入有几个学生:");
int num=Integer.parseInt(stringnum);
String[] name=new String[num-1];
int[] mark=new int[num-1];
for(int i=1;i<=num;i++){
String stringname=JOptionPane.showInputDialog("请输入第"+i+"个学生的姓名");
name[i-1]=stringname;
String stringmark=JOptionPane.showInputDialog("请输入第"+i+"个学生的分数");
mark[i-1]=Integer.parseInt(stringmark);
}
int max=0,max2=0,num1=0,num2=0;
for(int i=0;i<num;i++){
if(mark[i]>max)
max=mark[i];
num1=i;
}
for(int i=0;i<num;i++){
if(mark[i]>max2&&mark[i]!=max)
max2=mark[i];
num2=i;
}
JOptionPane.showMessageDialog(null, "最高分的学生是"+name[num1]+"\n第二高分的学生是"+name[num2]);
}
}
------解决方案--------------------
你这个程序有点问题,我帮你改了一下,不知是不是你所要实现的样子:
import javax.swing.JOptionPane;
public class ts2 {
public static void main(String[] args)
{
// TODO Auto-generated method stub
String stringnum=JOptionPane.showInputDialog("请输入有几个学生:");
int num=Integer.parseInt(stringnum);
String[] name=new String[num];
int[] mark=new int[num];
for(int i=0;i<num;i++){
String stringname=JOptionPane.showInputDialog("请输入第"+i+"个学生的姓名");
name[i]=stringname;
String stringmark=JOptionPane.showInputDialog("请输入第"+i+"个学生的分数");
mark[i]=Integer.parseInt(stringmark);
}
int max=0,max2=0,num1=0,num2=0;
for(int i=0;i<num;i++){
if(mark[i]>max)
max=mark[i];
num1=i;
}
for(int i=0;i<num;i++){
if(mark[i]>max2&&mark[i]!=max)