Показать сообщение отдельно

  #10  
Старый 25.12.2005, 00:08
Deem3n®
Постоянный
Регистрация: 19.09.2005
Сообщений: 408
С нами: 10863746

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

Mymik этот вариант написанный в блокноте весьма неплохой )) (кстати от меня +) я его переделал в полне работоспособный:
Код:
#include <stdio.h>
#include <conio.h>

int main()
{
	FILE *f;
	// нафига вводить имя файла? сразу открываем input.txt
	if ((f = fopen("input.txt", "rt"))== NULL)
	{
		fprintf(stderr, "Cannot open input file.\n");
		return 1;
	}
	
	clrscr();	// очищаем экран
	char ch;	// текущий считываемый символ
	int left = 0;	// сумма цифр левее запятой
	int right = 0;	// сумма цифр правее запятой
	int comma = 0;

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

		if (ch=='.')
		{
			comma = 1; // готовимся к обработке цифр правее запятой
			printf("%c", ch); // выводим текущий символ
			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) printf("\t\tYES\n");
				else printf("\t\tNO\n");
			left=right=comma=0;
			continue; // пропускаем все оставшиеся действие цикла и становимся на следующий шаг
		}
		printf("%c", ch); // выводим текущий символ
	}
	fclose(f);
	return 0;
}
Тестил, работает 100%
Input.txt
Цитата:
23233.232332
1111.1111
32.545435
2222.11114
5435.5435322
2222.44
4345.654654
Result:
Цитата:
23233.232332 NO
1111.1111 YES
32.545435 NO
2222.11114 YES
5435.5435322 NO
2222.44 YES
4345.654654 NO

Последний раз редактировалось Deem3n®; 25.12.2005 в 01:36..
 
Ответить с цитированием