我正在尝试编写一个轮询程序,该程序需要解决五个问题并将问题放在二维数组的行上。另外,我如何计算一个人评定问题的次数。例如,如果五个人给出五个等级,我将如何编写程序来计算评级并将其放在二维阵列上。
这些是说明:
编写一个简单的民意调查程序:
允许用户将5个社会意识问题从1个(最不重要)评估为10个(最重要);
选择对您很重要的五个原因(例如,政治问题,全球环境问题)。使用一个 - 维数组主题(String类型)存储五个原因; 要总结调查回复,请使用5行,10列二维数组响应(int类型):
a)一份表格报告,左侧有五个主题,顶部有10个评级,每列都列出了每个主题收到的评分数。
b)在每行的右侧,显示该问题的评级平均值。
c)哪个问题获得最高分?显示问题和总分。 d)哪个问题得到最低点?显示问题和总分。
这是我的代码:
import java.util.Arrays;
import java.util.*;
public class Polling {
/**
* @param args the command line arguments
*/
public static String[] issues=new String[20];
public static void main(String[] args) {
Scanner console=new Scanner(System.in);
issues[0]="Global Warming";
issues[1]="Earth Quakes";
issues[2]="Stopping war";
issues [3]="Equal Rights";
issues[4]="Curing Cancer";
int[][] polling =new int[5][10];
Random rand=new Random();
int random=rand.nextInt(9)+5;
int poll=0;
String polling2=Arrays.toString(polling);
for(int i=1;i<random;i++){
System.out.println("Person"+i);
System.out.println("Rate these issues from 1-10");
System.out.println(issues[0]);
int zero=console.nextInt();
System.out.println(issues[1]);
int one=console.nextInt();
System.out.println(issues[2]);
int two=console.nextInt();
System.out.println(issues[3]);
int three=console.nextInt();
System.out.println(issues[4]);
int four=console.nextInt();
}
System.out.println();
答案 0 :(得分:1)
这样的东西?:
public static final String[] ISSUES = {
"Global Warming",
"Earth Quakes",
"Stopping war",
"Equal Rights",
"Curing Cancer",};
public static void main(String[] args) {
Scanner console = new Scanner(System.in);
Random rand = new Random();
int pollings = rand.nextInt(9) + 5;
int [][] rates= new int[pollings][ISSUES.length];
for (int i = 0; i < pollings; i++) {
System.out.println("Person" + i);
System.out.println("Rate these issues from 1-10");
for (int j = 0; j < ISSUES.length; j++) {
System.out.println(ISSUES[j]);
rates[i][j] = console.nextInt();
}
}
// ADDED
int minRating = Integer.MAX_VALUE;
int maxRating = Integer.MIN_VALUE;
int minRatingIndex = -1;
int maxRatingIndex = -1;
for (int i = 0; i < ISSUES.length; i++) {
System.out.print(ISSUES[i]+":");
int rating = 0;
for (int j = 0; j < pollings; j++) {
System.out.print("\t"+rates[j][i]);
rating += rates[j][i];
}
double average = ((double)rating)/pollings;
System.out.println("\tavr: "+average);
if (rating < minRating ){
minRating = rating;
minRatingIndex = i;
}
if (rating > maxRating ){
maxRating = rating;
maxRatingIndex = i;
}
}
System.out.println("Max points:\t"+ISSUES[maxRatingIndex]+":\t"+maxRating+" points");
System.out.println("Min points:\t"+ISSUES[minRatingIndex]+":\t"+minRating+" points");
System.out.println();
}