IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> [Java] неправильно считывает входной файл
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 38
Пол: Мужской

Репутация: -  0  +


Доброе Утро!
Помогите Пожалуйста переделать код:
Формат входного файла input.txt
Первая строка - целые числа M и N через пробел (1 <= M, N <= 1000)
Каждая из следующих строк содержит одно целое число K - номер строки и
далее через пробел N вещественных чисел - значения элементов строки
Последняя строка содержит единственное число 0
Пример входного файла
2 3
2 3.49 -5.108 6.31
1 18.4 -8.567 2
0

Мой код:

int N, M;
int [] a;
double [][]array;
FileReader fin = new FileReader ("input.txt");
Scanner con = new Scanner (fin);
M = con.nextInt();
N = con.nextInt();
con.useLocale(Locale.US);
array = new double[M][N];
a = new int[M];
int k = con.nextInt();
while (k>0 && k<M+1){
a[k-1] = a[k-1]+k;
for (int i=0; i<N; i++){
array[k-1][i]=con.nextDouble();
}
k = con.nextInt();
if (k == 0){break;}
}
fin.close();


Сообщение отредактировано: Shashlyk -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской
Ада: Разработчик
Embarcadero Delphi: Сторонник
Free Pascal: Разработчик

Репутация: -  627  +


Про массив a в условии ничего не сказано, не надо придумывать проблемы, которых нет:

    double [][]array;
FileReader fin = new FileReader ("input.txt");
Scanner con = new Scanner (fin);
M = con.nextInt();
N = con.nextInt();
con.useLocale(Locale.US);
array = new double[M][N];
int k;
do {
k = con.nextInt();
if(k > 0) {
for (int i=0; i<N; i++){
array[k-1][i]=con.nextDouble();
}
}
} while(k > 0);
M, N и array заполняются корректно.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 38
Пол: Мужской

Репутация: -  0  +


Цитата(IUnknown @ 10.06.2011 10:34) *

Про массив a в условии ничего не сказано, не надо придумывать проблемы, которых нет:

    double [][]array;
FileReader fin = new FileReader ("input.txt");
Scanner con = new Scanner (fin);
M = con.nextInt();
N = con.nextInt();
con.useLocale(Locale.US);
array = new double[M][N];
int k;
do {
k = con.nextInt();
if(k > 0) {
for (int i=0; i<N; i++){
array[k-1][i]=con.nextDouble();
}
}
} while(k > 0);
M, N и array заполняются корректно.

мне нужно было это, чтобы решить вот эту задачу: http://contest.samara.ru/ru/problemset/529/
Помогите Пожалуйста доделать:
void SolutionOfTask () throws FileNotFoundException{

PrintWriter fout=new PrintWriter("output.txt");
String str = "YES";
for (int i=0; i < M; i++){
if (a[i]!=i+1){
str = "NO";
fout.print(str);
break;
}
}
if (str.equals("YES")){
fout.print(str);
for (int i=0; i<M; i++){
fout.println();
fout.printf(Locale.US," %.3f",array[i][0]);
for (int j=1; j<N; j++){
fout.printf(Locale.US," %.3f",array[i][j]);
}
}
}
fout.flush();
fout.close();
}
}

как можно переделать код без массива а ?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 27.05.2024 2:04
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name