Вопрос по С + + Надо было составить программу чтобы считывала текст из файла и выводила количество маленьких (4 - 8 символов) слов во всех строках текста То что придумал #include "stdafx?

Информатика | 10 - 11 классы

Вопрос по С + + Надо было составить программу чтобы считывала текст из файла и выводила количество маленьких (4 - 8 символов) слов во всех строках текста То что придумал #include "stdafx.

H" #include #include #include #include using namespace std ; int main(int argc, _TCHAR * argv[]) { FILE * text ; char * filename = "C : \ \ Myfile.

Txt" ; char buf[101] = "" ; char commentStr[101] = "" ; if (!

(fopen_s(& ; text, filename, "r"))) { while (fgets(buf, 100 , text)) printf_s("%s", buf) ; char * pmin = NULL ; size_t pminlen = 0 ; char * head ; char * tail ; while ( * tail) { for (head = tail ; * head & ; & ; !

Isalnum( * head) ; + + head) { ; } for (tail = head ; * tail & ; & ; isalnum( * tail) ; + + tail) { ; } if (head < ; tail) { if ((pmin = = NULL) || (pminlen > ; tail - head)) ; { pmin = head ; pminlen = tail - head ; } } } if (pmin) { printf(" \ n") ; printf("min = %.

* s \ n", pminlen, pmin) ; } system("pause") ; return 0 ; } ничего не выдает в чем ошибка ( как мне кажется их тут дофига).

Ответить на вопрос
Ответы (1)
Irin3aZimoxis 31 окт. 2020 г., 19:39:13

Не люблю сишные приколы, даже не стал ковырять в коде.

Я бы так написал :

1.

Листинг программы :

#include < ; iostream> ;

#include < ; fstream> ;

#include < ; string> ;

using namespace std ;

int main()

{ ifstream f("words.

Txt") ; int MAX_WORD = 6 ; if(!

F. is_open()) { cout < ; < ; "Ошибка открытия файла!

" < ; < ; endl ; return 1 ; } string str ; int line = 1 ; int len = 0, cnt = 0 ; while(!

F. eof()) { getline(f, str) ; for(int i = 0 ; i!

= str.

Length() ; + + i) { if(str[i]!

= ' ') + + len ; else { if(len< ; = MAX_WORD) { + + cnt ; len = 0 ; } else len = 0 ; } } cout < ; < ; line < ; < ; ".

Коротких слов : " < ; < ; cnt < ; < ; endl ; cnt = 0 ; + + line ; } return 0 ;

}

2.

Тестовый файл :

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Proin vehicula tortor nec enim dictum, quis accumsan quam ultricies.

Maecenas suscipit urna sed leo pellentesque pellentesque.

Donec lorem libero, mattis ac lobortis et, porta ac felis.

Pellentesque at dui sollicitudin mauris cursus dignissim.

Integer aliquam metus eu ligula rutrum, non ultricies libero molestie.

Proin posuere ante velit, quis luctus arcu efficitur a.

Suspendisse sed interdum dolor.

Integer laoreet, mi non pulvinar sagittis, leo mi semper mauris, sed fermentum est lorem sed neque.

Duis neque justo, facilisis at magna quis, molestie varius dolor.

Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.

Aenean at nulla massa.

Proin interdum turpis justo, ac ultricies mauris molestie vitae.

In erat augue, elementum in placerat vitae, venenatis quis metus.

Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae ; Integer hendrerit interdum tellus, sit amet porttitor diam consequat quis.

Vivamus dignissim aliquam ex, eu maximus augue commodo a.

Morbi molestie convallis urna ac faucibus.

Mauris eget aliquet est.

Nulla luctus fringilla magna, ut viverra elit porta sit amet.

Curabitur at tortor eget dolor tincidunt iaculis.

Praesent odio libero, vestibulum lobortis est id, porta aliquam tortor.

Quisque fringilla nibh ut tellus dignissim, at pulvinar mauris faucibus.

Suspendisse eu metus vestibulum, vestibulum ligula sed, pharetra tellus.

Etiam ultrices consectetur congue.

Nulla at dignissim urna.

Sed pretium augue ipsum, in egestas massa tempor sed.

Ut id tincidunt lacus, tristique hendrerit arcu.

Quisque ultrices sem consectetur risus gravida, nec tristique tellus egestas.

Nunc eleifend non diam elementum scelerisque.

In ac dui in neque euismod volutpat eu sit amet metus.

Donec iaculis leo urna, ut mattis est commodo in.

Phasellus sollicitudin, ante sit amet rhoncus dignissim, velit mauris

scelerisque neque, posuere ultrices ante augue eget libero.

Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.

Morbi metus nulla, tincidunt vitae congue id, sollicitudin et neque.

Maecenas suscipit vel sapien hendrerit lobortis.

In feugiat nulla massa.

Fusce nec gravida nunc.

Integer nec odio a eros luctus auctor.

Fusce blandit quam id dolor vestibulum feugiat.

Cras tincidunt id felis ac ultricies.

Proin feugiat hendrerit feugiat.

Vestibulum congue leo ex, pulvinar sagittis ipsum venenatis eu.

In vitae dolor in odio lacinia laoreet.

Vivamus eget rhoncus felis.

Nulla ullamcorper lorem quis ultrices iaculis.

Aliquam facilisis mattis lacus.

Morbi et volutpat odio.

Sed posuere, odio at faucibus dapibus, ex nisl auctor elit, et vehicula lectus ex sit amet lectus.

Pellentesque viverra dignissim urna et feugiat.

Nunc vitae justo nec ex vehicula dapibus.

Ut sed sem laoreet, sollicitudin dui fermentum, congue velit.

In interdum augue velit, a viverra lectus porta eu.

Curabitur malesuada placerat lobortis.

Praesent ullamcorper ullamcorper elit, eget mollis dolor.

Vestibulum malesuada accumsan leo, non maximus nisl.

Donec nec nunc tellus.

Fusce volutpat hendrerit urna, et egestas nibh vestibulum eget.

Cras pharetra rutrum libero non blandit.

3. Прогон программы :

(см.

Скриншот).

Олег199965 20 нояб. 2020 г., 23:54:40 | 10 - 11 классы

Здравствуйте?

Здравствуйте.

Программа на си.

#include "stdio.

H" int main(void) { float a, b ; char s ; printf ("Vvedite chicla \ n") ; scanf("%f %f %c", & ; a, & ; b, & ; s) ; switch(s){ case' + ' : printf(" = %f \ n", a + b) ; break ; case' - ' : printf(" = %f \ n", a - b) ; break ; case' * ' : printf(" = %f \ n", a * b) ; break ; case' / ' : printf(" = %f \ n", a / b) ; break ; default : printf("ERROR \ n") ; return 0 ; } Потом, что бы получить ответ надо ввести два числа (ну на черный экран), далее знак ( + или - или / ).

Но вот вопрос.

Разве мы не должны, вводить , что в скобочках ' ' после "case" ?

Viktoriyabosko 15 авг. 2020 г., 21:38:20 | 10 - 11 классы

Помогите плиииз = ))) у меня есть программа но вней 2 ошибки нужно сделать с помощью динамического массива?

Помогите плиииз = ))) у меня есть программа но вней 2 ошибки нужно сделать с помощью динамического массива.

/ / laba4_2.

Cpp : Defines the entry point for the console application.

/ / #include "stdafx.

H"

#include "stdio.

H" / / #include "math.

H"

using namespace std ;

int main ( )

{ float * a ; int i, n ; printf("n = ") ; scanf("%i", & ; n) ; a = (float * )malloc(N * sizeof(float)) ; for( i = 0 ; i< ; = n - 1 ; i + + ) { printf("a[%i] = ", i ) ; scanf("%i", & ; a[i]) ; } for (i = 0 ; i< ; = N - 1 ; i + + ) { if (a[i]< ; 0) { printf("oshibka \ n") ; } else { if (a[i] / 2 = = 0) { printf("chetnoe \ n") ; } else { printf("nechetnoe \ n") ; } } } return 1 ;

}.

Апельсинка1 11 авг. 2020 г., 07:47:54 | 5 - 9 классы

В директории находился файл index?

В директории находился файл index.

Htm. В этой директории создали папку с именем Head и переместили в нее файл index.

Htm. После этого полное имя файла стало С : \ Documents \ IE \ Head \ index.

Htm Каково полное имя директории до перемещения?

Alfiya001 24 сент. 2020 г., 07:03:19 | 10 - 11 классы

Как преобразовать символ char в переменную int на языке с (не с + + )?

Как преобразовать символ char в переменную int на языке с (не с + + )?

Например char c ; int x ; чтобы 'c' = x ; Спасибо заранее.

Zook 28 сент. 2020 г., 06:26:41 | 10 - 11 классы

Напишите пожалуйста комментарии к программе на С + + , что к чему скажем так?

Напишите пожалуйста комментарии к программе на С + + , что к чему скажем так.

Задание было такое : Заполните случайным образом массив (100 элементов) поочередно бук - вами латинского алфавита от A до H и символами цифр от 1 до 8.

Про - верьте, есть ли в данном массиве записи, сходные с записью ходов коня по шахматной доске, и, если есть заполните ими второй массив.

Выполните сортировку полученных массивов.

Для контроля результата сделайте распечатку массивов, в том числе исходного.

#include #include #include char string[101] ; / / вводимое число char * temp ; char tempWord[1024] ; void checkIdentical(char str[]) { int i, j, size ; char c ; bool br ; size = strlen(str) ; for(i = 0 ; i < ; size ; i + + ) { c = str[i] ; for(j = i + 1 ; j < ; size ; j + + ) { if(c = = str[j]) { printf("%s \ n", str) ; br = !

Br ; break ; } } if(br) { break ; } } } int main() { printf("enter \ n") ; gets(string) ; temp = strtok(string, " ") ; printf("words with identical letters : \ n \ n") ; for( ; temp !

= NULL ; ) { strcpy(tempWord, temp) ; checkIdentical(tempWord) ; temp = strtok(NULL, " ") ; } return 0 ; }.

Osmansuleymanov 25 янв. 2020 г., 04:58:27 | 5 - 9 классы

Объясните пожалуйста , какое слово что делает (в программирование) ?

Объясните пожалуйста , какое слово что делает (в программирование) .

Программа Паскаль ABC.

Net : var n, m, head, eye : integer ; begin writeln('сколько лет вашему дракону?

') ; readln(n) ; head : = 1 ; eye : = 2 ; for m : = 2 to n do if m< ; = 100 then head : = head + 3 else head : = head + 2 ; eye : = head * 2 ; writeln('голов', head, 'глаз', eye) ; end.

Васек056 22 окт. 2020 г., 14:43:22 | 10 - 11 классы

Помогите по программированию?

Помогите по программированию?

Описать каждую сточку, вот само задание : Пусть заданы два предложения, слова в которых разделены запятыми или пробелами.

Каждое предложение заканчивается точкой.

Можно ли из букв первого предложения составить второе предложение и наоборот?

Если нельзя ни то ни другое, то надо перечислить буквы, которых не хватает в первом (втором) предложении, чтобы составить второе (первое).

#include< ; stdio.

H> ; #include< ; conio.

H> ; int main() { char s1[200], s2[200] ; int bykvi1[25], bykvi2[25], i = 0 ; printf("Enter first string(EN) : \ n") ; gets(s1) ; printf("Enter second string(EN) : \ n") ; gets(s2) ; / / a - z : 97 - 122, 26 for(int j = 0 ; j< ; 26 ; j + + ) { bykvi1[j] = 0 ; bykvi2[j] = 0 ; } while (s1[i]!

= '. ') { if (s1[i] = = ' \ 0') break ; bykvi1[(s1[i] - 97)] = 1 ; i + + ; } i = 0 ; while (s2[i]!

= '. ') { if (s2[i] = = ' \ 0') break ; bykvi2[(s2[i] - 97)] = 1 ; i + + ; } for(int j = 0 ; j< ; 26 ; j + + ) { if (bykvi1[j] = = 0 & ; & ; bykvi2[j]> ; 0) { printf("In the first sentence is not enough letter : %c \ n", (char)(j + 97)) ; } if (bykvi1[j]> ; 0 & ; & ; bykvi2[j] = = 0) { printf("In the second sentence is not enough letter : %c \ n", (char)(j + 97)) ; } } getch() ; }.

Бананаааааа 21 мар. 2020 г., 05:02:15 | 10 - 11 классы

/ / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#include < ; stdio?

/ / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

#include < ; stdio.

H> ;

#include < ; conio.

H> ;

#pragma hdrstop / / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

#pragma argsused

int main(int argc, char * argv[])

{ int a[10], m, n, k, i ;

m = n = k = 0 ;

for(i = 0 ; i< ; 9 ; i + + ) {scanf("%d", & ; a[i]) ; if(a[i]> ; 0 & ; & ; a[i + 1]< ; 0) k + + , m = a[i], n = a[i + 1], printf(" \ n %d %d", m, n) ; if(a[i]< ; 0 & ; & ; a[i + 1]> ; 0) k + + , m = a[i], n = a[i + 1], printf(" \ n %d %d", m, n) ; if(k = = 4) break ; } ; getch() ; return 0 ; } / / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Это С + + , задача состоит в том чтобы вывести первые 4 пары смежных символов со противоположными знаками ( + - или - + ).

Только где - то в коде ошибка.

Помогите найти ее.

89132730587 18 нояб. 2020 г., 03:41:12 | 10 - 11 классы

Что не так в программе?

Что не так в программе?

Нужно вывести минимальный элемент, который есть в массиве.

С + +

#include

#include

#include

#include

#include

int main()

{

int a[5], i, min ;

srand (time(0)) ;

printf("a : \ n") ;

for (i = 0 ; i.

Anastasizi 24 сент. 2020 г., 17:33:03 | 10 - 11 классы

C + + Нужно создать одномерный массив A[5] где числа будут введены случайным образом от 0 до 1?

C + + Нужно создать одномерный массив A[5] где числа будут введены случайным образом от 0 до 1.

Я делал вот что у меня получается : #include #include #include using namespace std ; int main () { float A[5] = {} ; srand(time(NULL)) ; for (char i = 0 ; i< ; 5 ; i + + ) { A[i] = (char)rand()%1 ; cout< ; } return 0 ; } Проблема в том, что выводит только нули Помогите пожалуйста.

На странице вопроса Вопрос по С + + Надо было составить программу чтобы считывала текст из файла и выводила количество маленьких (4 - 8 символов) слов во всех строках текста То что придумал #include "stdafx? из категории Информатика вы найдете ответ для уровня учащихся 10 - 11 классов. Если полученный ответ не устраивает и нужно расшить круг поиска, используйте удобную поисковую систему сайта. Можно также ознакомиться с похожими вопросами и ответами других пользователей в этой же категории или создать новый вопрос. Возможно, вам будет полезной информация, оставленная пользователями в комментариях, где можно обсудить тему с помощью обратной связи.