HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование_OLD > С/С++, C#, Delphi, .NET, Asm
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #11  
Старый 25.12.2005, 15:01
Meister
Участник форума
Регистрация: 13.10.2005
Сообщений: 210
Провел на форуме:
371736

Репутация: 14
По умолчанию

Господа, я наверно мало внимания уделил постановке задачи, когда писал пост, но нужно просто
Цитата:
Сообщение от Meister  
...Написать функцию для определения есть ли среди них число у которого равны сумма цифр целой и дробной части"
И я говорю именно, что у меня получилось только по каждому числу, а мне надо в общем, есль ли ли такое число в файле, или нет. И на экран вывести Да или Нет. Димеру и Мумику по плюсу за желание мне помочь.

Да кстати, Димер, щас проверил твою прогу, просто черныый экран вылетает и сворачивается обратно, прога завершается. Мы делаем в такой среде: File >> New >> Other >> Console Wizard >> Галочки на C++ только оставить.

Последний раз редактировалось Meister; 25.12.2005 в 15:15..
 

  #12  
Старый 25.12.2005, 17:02
Deem3n®
Постоянный
Регистрация: 19.09.2005
Сообщений: 408
Провел на форуме:
3730496

Репутация: 519
По умолчанию

Цитата:
а мне надо в общем, есль ли ли такое число в файле, или нет
ну переделать не проблема:
Код:
#include <stdio.h>
#include <conio.h>

// Функция возвращает:
//  1 - если в файле есть число у которого равны сумма цифр целой и дробной части
//  0 - если этого числа нет
// -1 - ошибка I/O
int exists(const char* file_name)
{
	FILE *f;
	char ch;	// текущий считываемый символ
	int left = 0;	// сумма цифр левее запятой
	int right = 0;	// сумма цифр правее запятой
	int comma = 0;

	if ((f = fopen(file_name, "rt"))== NULL)
	{
		fprintf(stderr, "Cannot open input file.\n");
		return -1;
	}

	while (!feof(f))
	{
		fscanf(f, "%c", &ch); // будем читать посимвольно

		if (ch=='.')
		{
			comma = 1; // готовимся к обработке цифр правее запятой
			continue; // пропускаем все оставшиеся действие цикла и становимся на следующий шаг
		}

		if ((ch>='0') && (ch<='9') && (comma == 0))
			left += int (ch) - 48; // int (ch) - ASCII код символа, int('0')=48 ... int('9')=57
		if ((ch>='0') && (ch<='9') && comma)
			right += int (ch) - 48;

		if (ch == '\n') // если текущий символ - конец строки
		{
			if (left==right) return 1;
			left=right=comma=0;
		}
	}
	fclose(f);
	return 0;
}


int main()
{
	char file_name[255];
	printf("Enter filename:");
	scanf("%s", &file_name);
	switch (exists(file_name))
	{
		case 1: printf("YES"); break;
		case 0: printf("NO"); break;
		default: printf("I/O Error"); break;
	}
	getch();
	return 0;
}
компилится и работает без проблем в TC++ и Visual Studio
 

  #13  
Старый 25.12.2005, 17:38
Meister
Участник форума
Регистрация: 13.10.2005
Сообщений: 210
Провел на форуме:
371736

Репутация: 14
По умолчанию

Как-то он по разному отвечает, например на числа
11.12
23.34
12.12

отвечает
NO
Это же не может быть связано с тем, что я использую C++ Builder 6?
 

  #14  
Старый 25.12.2005, 22:38
Deem3n®
Постоянный
Регистрация: 19.09.2005
Сообщений: 408
Провел на форуме:
3730496

Репутация: 519
По умолчанию

Цитата:
Сообщение от Meister  
Как-то он по разному отвечает, например на числа
11.12
23.34
12.12

отвечает
NO
Это же не может быть связано с тем, что я использую C++ Builder 6?
после последнего номера в файле надо нажать <Enter>
 

  #15  
Старый 26.12.2005, 01:02
Meister
Участник форума
Регистрация: 13.10.2005
Сообщений: 210
Провел на форуме:
371736

Репутация: 14
По умолчанию

Deem3n® А почему так получается, что если ентер в конце есть, то всегда Yes?
 
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
программа для чистки словорей!! Dread Болталка 2 17.12.2005 20:55



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ