![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() |
18192123 |
![]()
Сообщение
#1
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
Дан текстовый файл. Определить сколько в нем содержится цифр.
Программа должна содержать итеративную и рекурсивную функции, и не должна иметь глобальных переменных. файл может содержать более одной строки (как это учесть?), где распологаются буквы и цифры через любой разделитель. какое условие нужно задавать для нахождения цифр? Сообщение отредактировано: 18192123 - 18.04.2007 14:42 |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Не знаю, зачем здесь НЕрекурсивная функция, если вполне можно обойтись одной рекурсией:
#include <stdio.h> Но можешь открыть файл, например, в одной функции, а потом вызвать рекурсию... |
18192123 |
![]()
Сообщение
#3
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
Не знаю, зачем здесь НЕрекурсивная функция, если вполне можно обойтись одной рекурсией Но можешь открыть файл, например, в одной функции, а потом вызвать рекурсию... Тогда, наверное, имелось ввиду написать две ф-ции, которые будут выполнять задание, только одна рекурсивно, а другая итеративно, и пользователь может выбрать один из этих способов. isdigit(getc(f) - это наверно ф-я, прототип которой находится в <ctype.h>? А как она работает? Каковы параметры её? |
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
isdigit это не функция, а макрос, описанный в ctype.h. Он принимает символ, и возвращает 0, если это НЕ цифра (от '0' до '9'), и ненулевое значение, если цифра...
А функция getc(f) читает из потока f очередной символ, и возвращает его как результат... Описана в stdio.h, как и все остальное для работы с файлом... |
18192123 |
![]()
Сообщение
#5
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
|
volvo |
![]()
Сообщение
#6
|
Гость ![]() |
... |
18192123 |
![]()
Сообщение
#7
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
#include <stdio.h> а почему главная ф-я возвращает 0 и почему при if((f = fopen("test.txt", "rt")) == NULL) возвращается 1? |
volvo |
![]()
Сообщение
#8
|
Гость ![]() |
Потому, что обычно ноль - это признак безошибочного завершения программы, а если файл не открылся - это ошибка... Вот и возвращаем код ошибки...
Можно, например, при всех неудачах с открытием файла возвращать 1, при неудачах создания файла - возвращать 2, при ошибке, скажем, записи в файл, возвращать 3, ну и т.д. Тогда и из вызывающей программы (если программа будет откуда-нибудь вызываться) можно будет с уверенностью сказать, что послужило причиной ошибки ... |
![]() ![]() |
![]() |
Текстовая версия | 19.06.2025 10:57 |