Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.09.2011, 14:28   #1
Sampet
 
Регистрация: 16.05.2011
Сообщений: 3
Стрелка Дана последовательность чисел(файл).За один просмотр файла определить требуемую характеристику (С++) до 2 октября11г.

Я только познакомилась с С++ так как поступила на мехмат, и нас с самого начала убила преподша по программированию, вот дала программу написаь ничего не рассказав, а я в этом вообще мало чего понимаю, помогите мне пожалуйста. Там нужно написать 3 отдельные программы, и какие-то исходники, которая дала преподша, сказав, что это всё нам поможет) Заранее спасибо)


Предполагается, что в файле записана последовательность числе неизвестной длины (возможно, пустая). Требуется за один просмотр файла и без запоминания последовательности в массиве определить требуемую характеристику последовательности:
1. Количество числе, больших предыдущего;

2. Количество чисел, равных минимальному;

3. Длину самого длинного постоянного участка.
Прога:

Код:
#include <stdio.h>

int main(void)

{int max, tmp;

FILE *in;

</span>in=fopen("data.txt", "r");

if (in</span>==NULL)

(вот здесь я где-то пропустила, где закрывается фигурная скобка, в итоге – не знаю, потому что дальше она у меня снова почему-то открывается)

{printf ("Не удалось открыть файл.\n");

return 1;

}

if (fscanf (in, "%d", &tmp)!=1)

{printf ("Не удалось прочитать первое число.\n");

printf ("Максимум определить не удалось.\n");

return 0;

}

max=tmp;

while (fscanf (in, "%d", &tmp)==1)

{if (tmp>max) max=tmp;

}

{print ("Максимум, значение: %d.\n", max);

fclose (in);

return 0;

}
Насчет всех своих скобок фигурных я совсем не уверена, т.к. переписывала это судорожно с доски, потому что она быстро говорит, а пишет еще быстрее (:

Маша.

Последний раз редактировалось Stilet; 30.09.2011 в 21:30.
Sampet вне форума Ответить с цитированием
Старый 30.09.2011, 14:57   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

А кому вы через каждые 2 строки что-то возвращаете (return)?у вас же только одна функция (main) и все это в ней самой происходит.

И используйте тег [CODE] (значок #) для сохранения форматирования и подсветки кода в сообщении. Кнопка правка снизу сообщения.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 30.09.2011 в 14:59.
Alex11223 вне форума Ответить с цитированием
Старый 30.09.2011, 15:14   #3
onewho
Форумчанин
 
Регистрация: 29.09.2010
Сообщений: 636
По умолчанию

нифиговые вам там программы дают на первом месяце обучения
что же дальше тогда будет?

ну если правда 1ый месяц, то лови презент
Код:
#include <stdio.h>
#include <locale.h>


int main(void) {

	FILE * fp = fopen("data.txt","r");

	int min=INT_MAX;

	int tmp;
	int prev;

	int cur_seq_len=0, max_seq_len=0;
	int num_mins=1;
	int num_m_prev=0;

	if (fscanf(fp,"%d",&tmp)!=1) {

		puts("Error reading first num.");
		return 1;

	}

	min=tmp;
	
	prev=tmp;

	cur_seq_len=1;

	while (fscanf(fp,"%d",&tmp)==1) {

		if (tmp>prev)
			num_m_prev++;

		if (tmp<min) {
			min=tmp;
			num_mins=1;
		} else if (tmp==min) {
			num_mins++;
		}

		if (tmp==prev) {
			cur_seq_len++;

			if (cur_seq_len>max_seq_len)
					max_seq_len=cur_seq_len;

		} else
			cur_seq_len=1;

		prev=tmp;

	}

	fclose(fp);

	printf("num_m_prev: %d\nnum_mins: %d\nmax_seq_len: %d\n",num_m_prev,num_mins,max_seq_len);







	getchar();
	return 0;
onewho вне форума Ответить с цитированием
Старый 30.09.2011, 20:25   #4
Sampet
 
Регистрация: 16.05.2011
Сообщений: 3
По умолчанию

У меня как записано в тетради, так и пишу, нам так диктовали, я же говорю, я в С++ ничего не смыслю, был в жизни Pascal, и то было давно...

Спасибо за код, там все три проги или только одна какая-то, я не поняла)
Но все равно заранее спасибо)
Sampet вне форума Ответить с цитированием
Старый 02.10.2011, 01:52   #5
onewho
Форумчанин
 
Регистрация: 29.09.2010
Сообщений: 636
По умолчанию

ой, а вам что нужно 3 отдельные было?

ну тогда неинтересно((

да там 3 сразу.
ну , в общем-то 3 if-а - 3 проги.

разбить я думаю несложно будет.
onewho вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С\С++ Дана последовательность чисел. Найти количество различных чисел в этой последовательности yuliyayuliya Помощь студентам 1 14.04.2011 06:30
дана последовательность натуральных чисел. amikulia Помощь студентам 0 14.01.2011 12:43
Дана последовательность чисел fara1992 Паскаль, Turbo Pascal, PascalABC.NET 12 20.06.2010 22:26
1. Дана непустая последовательность различных натуральных чисел, за которой следует 0. Определить порядко Sos1 Помощь студентам 2 08.06.2010 00:29
Assembler. Дана последовательность из 5 чисел..... Nub007 Помощь студентам 3 29.01.2010 13:34