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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.06.2016, 19:45   #1
zaira001002
Форумчанин
 
Аватар для zaira001002
 
Регистрация: 13.09.2012
Сообщений: 122
По умолчанию Подсчет количества смены знака в последовательности чисел (Си)

Почему при наличии в файле чисел : 0 2 -4, выдает результат: count = 0 . То есть... Он возвращает мне ошибку , что в файле есть не число, там, где я делаю проверку на наличие символов ненужных в файле( я проверяла). Почему происходит такая вещь в программе? Вот если в файле будут числа: 0 2 -4 5 , то уже работает верно все). Где у меня ошибка? Вот код программы:
Код:
#include <stdio.h>
#include <math.h>

int process(FILE* file, int* kol_pol)
{
	// если файла не существует - возвращает значение -1
	if (file == NULL) return -1;
	int a; //число в файле
	int num1, num2;
	int otr1, otr2;
	fseek(file, 0, SEEK_SET);
	// Если в файле не число - то возвращает значение -1
	while (fscanf(file, "%d", &a) != EOF)
	{
		if (fscanf(file, "%d", &a) != 1) return -1;
	}
	// если в файле все числа, то найдем количество смены знака
	// считываем число с файла и определяем , положительное ли оно
	fseek(file, 0, SEEK_SET);
	fscanf(file, "%d", &a);
	num1 = a;
	(num1 >= 0) ? (otr1 = 1) : (otr1 = -1);
	while (fscanf(file, "%d", &a) != EOF)
	{
		num2 = a;
		(num2 >= 0) ? (otr2 = 1) : (otr2 = -1);
		if (otr1*otr2 == -1)  (*kol_pol)++;
		num1 = num2;
		otr1 = otr2;
	}
	return 0;
}

int main(void)
{
	int kol_pol = 0;

	FILE *fin;

	// ввод из файла
	fin = fopen ( "C:/c/test.txt", "r" );
	if (fin == NULL) printf("Error");

	process(fin, &kol_pol);
	printf("%s %d %s", "count = ", kol_pol, "\n");
	getchar();

	return 0;
}
zaira001002 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нахождение количества смены знака (по Си) zaira001002 Помощь студентам 1 09.07.2015 14:55
в непустой последовательности целых чисел определить количество смен знака числа (Delphi) shalgan Помощь студентам 14 25.02.2014 18:29
последовательности a(1)...a(n) определить число соседств двух чисел разного знака (написать код на visual basic) эленька Помощь студентам 0 25.04.2013 02:25
Поиск смены знака Franky21 Общие вопросы C/C++ 5 09.03.2010 00:35
Подсчитать количества знака в числе valerij Microsoft Office Excel 5 17.08.2008 16:52