Найти порядковый номер и длину самого длинного предложения - C (СИ)
Формулировка задачи:
здрасьте
помогите разобраться с программкой
задача: найти порядковый номер и длину самого длинного предложения, ограничение строки - 60 символов(язык си)
выводит совершенно неправильно
кто может помочь? plz
как сделать структуру, где будет хранится номер и длина?
#include <stdio.h> main() { FILE *fail; char pt[70]; int c,np=0,ks=0,max=0; puts("введи имя файла"); gets(pt); fail=fopen(pt,"r"); if(fail==NULL) {puts("error!\n"); return 1;} while((c=fgetc(fail))!=EOF) {if(c=='.' || c=='!' || c=='?') if(ks>max) {max=ks; ks=0; }; ks++;} fclose(fail); printf("%d",max); getchar(); return 0; }
Решение задачи: «Найти порядковый номер и длину самого длинного предложения»
textual
Листинг программы
kolsent = maxind = 0; kolsim = max = 0; flag = 0; while ((c = getc(fail)) != EOF) { if (c != '.' && c != '!' && c != '?') { if (flag == 0) { flag = 1; kolsent++; } kolsim++; } else if (flag == 1) { flag = 0; if (max < kolsim) { max = kolsim; maxind = kolsent; } kolsim = 0; } }
Объяснение кода листинга программы
В данном коде реализована функция, которая находит самое длинное предложение в тексте.
- Изначально устанавливаются начальные значения переменных: — kolsent = 0; — maxind = 0; — kolsim = 0; — max = 0; — flag = 0;
- В цикле while считывается каждый символ из файла (предполагается, что файл уже открыт).
- Проверяется, является ли текущий символ знаком препинания (точкой, восклицательным или вопросительным знаком). Если нет, то: — Если flag равно 0, то: — flag устанавливается в 1, чтобы начать отсчет предложения. — kolsent увеличивается на 1.
- Если текущий символ является знаком препинания, то: — Если flag равно 1, то: — flag устанавливается в 0, чтобы начать отсчет нового предложения. — Если max меньше kolsim, то: — max устанавливается в kolsim. — maxind устанавливается в kolsent. — kolsim сбрасывается в 0.
- Цикл while продолжается до тех пор, пока не будет достигнут конец файла (EOF).
- Значение переменной maxind будет содержать порядковый номер самого длинного предложения, а значение переменной max — его длину.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д