19.12.2018, 11:47 [+3 UTC]
в нашей команде: 3 245 чел. | участники онлайн: 9 (рекорд: 20)

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

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

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

:: правила

:: новости

:: участники

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

:: форум

:: блоги

:: поиск

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

:: наш журнал

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

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

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

:: поддержка

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

Версия системы:
7.59 (18.12.2018)

Общие новости:
18.12.2018, 00:02

Форум:
18.12.2018, 14:33

Последний вопрос:
19.12.2018, 09:22

Последний ответ:
19.12.2018, 09:10

Последняя рассылка:
19.12.2018, 02:45

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

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

Наша кнопка:

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

Отзывы о нас:
14.12.2010, 19:17 »
Кокин Антон Вадимович
Спасибо. Нашел еще в сети дельные советы по Камтазии и записи видеоуроков. [вопрос № 181345, ответ № 264763]
16.11.2010, 08:39 »
novij2011
спасибо за ответ [вопрос № 180699, ответ № 264076]

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

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

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

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

Лысков Игорь Витальевич
Статус: Старший модератор
Рейтинг: 168
solowey
Статус: Студент
Рейтинг: 166
Коцюрбенко Алексей aka Жерар
Статус: Мастер-Эксперт
Рейтинг: 104

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

Консультация онлайн # 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.15350 сек.

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