Моя проблема в том, что я не могу найти способ правильно отобразить правильное значение для наименьшего значения населения и провинции, в которой оно есть. :
Напишите программу для чтения в
файл данных провинции в массив
называется ProvinceName и массив
называется провинция населения. Вы можете
Предположим, что есть 10 провинций.
Написать цикл: прочитать данные в
два массива. Проанализируйте массив, чтобы
рассчитать общую численность населения
все провинции. Напиши другой
цикл, чтобы найти провинцию с
Наименьшее население и распечатать, что
название этой провинции.
Данные хранятся следующим образом (провинция Data.txt):
Ontario
12891787
Quebec
7744530
Nova Scotia
935962
New Brunswick
751527
Manitoba
1196291
British Columbia
4428356
PEI
139407
Saskatchewan
1010146
Alberta
3512368
NF/LB
508270
Вот мой код Java:
import java.io.*;
import java.util.Scanner;
public class Slide50
{
public static void main(String[] args)throws IOException
{
File file = new File ("C:/provinceData.txt");
Scanner in = new Scanner(file);
int i = 0;
String province[] = new String[10];
String lowProv = null;
int pop[] = new int[10];
int totalPop = 0;
int low = pop[0];
//while there is data in the file to be processed
while(in.hasNext())
{
province[i] = in.nextLine();
pop[i] = in.nextInt();
//discard the \n on the line
in.nextLine();
//regular processing goes here
i++;
}
System.out.printf("\n\t%-16s %20s\n", "Province", "Population");
System.out.printf("\t%-16s %20s\n", "========", "==========");
//print the province population report (which includes a total) using printf
for (i = 0; i < pop.length; i++)
{
System.out.printf("\t%-16s %,20d\n", province[i], pop[i]);
totalPop += pop[i];
//find the province that has the smallest population
//and print out the province name and its population
if (pop[i] < low)
{
low = pop[i];
}
}
System.out.printf("\t%-16s %20s\n", "================", "==========");
System.out.printf("\t%-16s %,20d\n", "Total:", totalPop);
System.out.println("\n\tThe province of " + lowProv + " with a population of " + low);
System.out.println("\tis the least populated of all provinces.");
}
}
Вот мой пример запуска на основе этого кода:
Province Population
======== ==========
Ontario 12,891,787
Quebec 7,744,530
Nova Scotia 935,962
New Brunswick 751,527
Manitoba 1,196,291
British Columbia 4,428,356
PEI 139,407
Saskatchewan 1,010,146
Alberta 3,512,368
NF/LB 508,270
================ ==========
Total: 33,118,644
The province of null with a population of 0
is the least populated of all provinces.