Посчитать количество предложений в файле - C (СИ)
Формулировка задачи:
Посчитать количество предложений в файле. В чем ошибка не понимаю.
Записать результат функции в файл. Если x>y то z=x*Amax иначе z=y*Bmax;
Помогите пожалуйста.
#include <stdio.h>
#include <conio.h>
#include <dos.h>
main()
{
int cnt = 0;
char c;
char symbols[3] = ".?!";
FILE *f;
int pred=0;
clrscr();
f = fopen("text.txt", "r");
printf("\n");
while(!fgetc(f))
{
c = fgetc(f);
printf("\n%s", c);
for (int i=0; i<3; i++)
if(c == symbols[i]){
pred++;
break;
}
}
fseek(f, 0, SEEK_SET);
printf("\nPredlojeniy: %i", pred);
getch();
fclose(f);
return 0;
}#include <conio.h>
#include <stdio.h>
int func(int* num, int N)
{
int mul=1;
for(int i=0; i<N; i++)
mul*=num[i];
return mul;
}
int FindMax(int* num, int N)
{
int mul=num[0];
for(int i=1; i<N; i++)
if(mul<num[i])
mul=num[i];
return mul;
}
int main()
{
clrscr();
const int n=3, m=2;
int i;
int A[n], B[m];
printf("Vvedite massiv A\n");
for(i=0;i<n;i++)
scanf("%d", &A[i]);
printf("Vvedite massiv B\n");
for(i=0;i<m;i++)
scanf("%d", &B[i]);
int x=func(A, n);
int y=func(B, m);
int Amax=FindMax(A, n);
int Bmax=FindMax(B, m);
int z;
if (x>y)
z=Amax*x;
else
z=Bmax*y;
printf("%i", &z);
char * f = "output.txt";
FILE* fp = fopen(f, "w+");
fprintf(fp, "%f", z);
getch();
return 0;
}Решение задачи: «Посчитать количество предложений в файле»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main(void)
{
char c;
char symbols[4] = ".?!";
FILE *f;
int pred=0;
clrscr();
f = fopen("text.txt", "r");
printf("\n");
while((c=fgetc(f))!=EOF)
{
printf("%c", c);
for (int i=0; i<3; i++)
if(c == symbols[i]){
pred++;
break;
}
}
printf("\nPredlojeniy: %d", pred);
getch();
fclose(f);
return 0;
}
Объяснение кода листинга программы
В этом коде посчитывают количество предложений в файле. Вот список действий:
- Подключение необходимых библиотек.
- Создание основной переменной — символа c.
- Создание массива символов, который будет обозначать конец предложения (точка, вопросительный знак, восклицательный знак).
- Открытие файла
text.txtс помощью функции fopen. - Очистка экрана с помощью функции clrscr.
- Чтение файла посимвольно с помощью функции fgetc и вывод каждого символа на экран.
- Переменная pred инициализируется нулем и используется для подсчета количества предложений.
- В цикле while происходит чтение символов из файла до тех пор, пока не будет достигнут конец файла (EOF).
- Если текущий символ равен одному из символов, обозначающих конец предложения, то переменная pred увеличивается на единицу.
- После окончания чтения файла выводится количество предложений.
- Файл закрывается с помощью функции fclose.
- Программа возвращает ноль, что означает успешное завершение работы.