24.01.2018, 12:33 [+3 UTC]
в нашей команде: 2 496 чел. | участники онлайн: 4 (рекорд: 21)

:: РЕГИСТРАЦИЯ

:: консультации

:: задать вопрос

:: все разделы

:: правила

:: новости

:: участники

:: доска почёта

:: форум

:: блоги

:: поиск

:: статистика

:: наш журнал

:: наши встречи

:: наша галерея

:: отзывы о нас

:: поддержка

:: руководство

Версия системы:
7.42 (30.12.2017)

Общие новости:
02.01.2018, 09:46

Форум:
23.01.2018, 17:49

Последний вопрос:
24.01.2018, 11:08

Последний ответ:
24.01.2018, 11:21

Последняя рассылка:
24.01.2018, 02:15

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
08.09.2010, 11:43 »
Massimo
Большое спасибо за помощь!!! [вопрос № 179872, ответ № 262996]
18.04.2012, 13:48 »
Arman Muratuly
Очень профессионально, ещё и помогли с переводом. Спасибо. [вопрос № 185844, ответ № 270562]
03.09.2010, 17:15 »
Elektreg
гранд мерси, а я и не подумал через потокосцепление решать [вопрос № 179846, ответ № 262961]

РАЗДЕЛ • С / С++

Создание программ на языках C и C++.

[администратор рассылки: Андрей Кузнецов aka Dr_Andrew (Старший модератор)]

Лучшие эксперты в этом разделе

Коцюрбенко Алексей aka Жерар
Статус: Мастер-Эксперт
Рейтинг: 617
Лысков Игорь Витальевич
Статус: Старший модератор
Рейтинг: 376
CradleA
Статус: Профессионал
Рейтинг: 242

Перейти к консультации №:
 

Консультация онлайн # 192354
Раздел: • С / С++
Автор вопроса: Александр Лепов (Посетитель)
Отправлена: 10.01.2018, 13:30
Поступило ответов: 1

Здравствуйте! Прошу помощи в следующем вопросе: Помогите пожалуйста найти ошибку в коде, в консоле у меня всё правильно выводит, а вот в текстовом файле нет.

Приложение:

Состояние: Консультация закрыта

Ответ # 276020 от Лысков Игорь Витальевич (Старший модератор)

Здравствуйте, Александр Лепов!
Я бы сделал так:

#include<math.h>
#include<conio.h>
#include<stdio.h>
//---------------------------------------------------------------------------

int main(int argc, char* argv[])
{
	int		i;
	int		a[100];
	int		min;
	int		min2, N;

	FILE *f1=fopen("m1.txt", "r");
	FILE *f2=fopen("m2.txt", "w");
	
	fscanf(f1,"%d",&N);

	for(i=0;i<N;i++)
		fscanf(f1,"%d",&a[i]);

	min=a[0];

	for(i=1; i<N; i++)
	{
		if (abs(a[i]) < abs(min))
			min = a[i];
	}
	min2 = a[0];
	for(i=1; i<N; i++)
	{
		if((abs(a[i]) > abs(min)) && (abs(a[i]) < abs(min2)))
			min2 = a[i];
	}
   
	fprintf(f2,"%d",min2);

	fclose(f1);
	fclose(f2);

	return 0;
}

Файл m1.txt
10 4 1 7 8 -3 11 -8 9 -2 5
Результат в файле m2.txt

Несколько замечаний:
1) Первым числом в файле идет количество чисел N. Которое потом везде и фигурирует (а не всегда 10)
2) Не проверяется переполнение массива a и наличие всех чисел в файле (я, на всякий случай, увеличил размерность массива до 100)
3) Ожидание нажатия на клавишу убрал. Результат - в файле.


Консультировал: Лысков Игорь Витальевич (Старший модератор)
Дата отправки: 10.01.2018, 16:31

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Мини-форум консультации № 192354

Хватов Сергей
Академик

ID: 20764

# 1

= общий = | 11.01.2018, 11:19 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Ещё настоятельно рекомендуется проверять, что fscanf возвращает ожидаемое значение. Если во входных данных мусор, он ничего не загрузит (и вдобавок недопустимый символ вернёт обратно, так что следующий fscanf на него же опять наткнётся), и значения переменных останутся неопределёнными.
Ещё крайне желательно, чтобы выходной файл, раз уж он символьный, заканчивался символами конца строки. На работоспособность это обычно не влияет, но при просмотре файла возможны проблемы. Возможно, что вы как раз на них и нарвались, потому как исходная программа формально верная.

 

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Яндекс Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.14213 сек.

© 2001-2018, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.42 от 30.12.2017