
25.12.2005, 00:08
|
|
Постоянный
Регистрация: 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..
|
|
|