Этой программе все равно, сколько слов во фразе и какой они длины. А заодно, ей все равно, сколько между словами пробелов...
// PascalABC.NET 3.1, сборка 1230 от 27.04.2016 procedure Times(a:array of string; pic:string; var n:integer); begin n:=a.Where(s->s=pic).Count end;
begin var s:=ReadlnString('>').ToWords; var k:integer; var w:='ЗНАЧИТ'; Times(s,w,k); Println(k,'-',w); w:='ВОТ'; Times(s,w,k); Println(k,'-',w); w:='АВТОМОБИЛЬ'; Times(s,w,k); Println(k,'-',w); end.
Тестовое решение > ВОТ ЗНАЧИТ КАКОЕ ДЕЛО БЫЛО ЕХАЛ ПО ДОРОГЕ АВТОМОБИЛЬ И ВОТ СТОИТ ЧЕЛОВЕК И ДУМАЕТ А ЧТО ЗНАЧИТ СЛОВО АВТОМОБИЛЬ А СЛОВО АВТОМОБИЛЬ ЭТО ОТ ГРЕЧЕСКОГО АУТОС (САМ) И ЛАТИНСКОГО МОБИЛИС (ПОДВИЖНЫЙ) ВОТ ТАКОЕ ЭТО СЛОВО 2 - ЗНАЧИТ 3 - ВОТ 3 - АВТОМОБИЛЬ
Программа:
#include <iostream>
#include <stdlib.h>
using namespace std;
int main() {
const int n = 20;
int a[n];
int k1=0;
int k2=0;
int k3=0;
srand(time(0));
for (int i = 0; i < n; i++) {
a[i]=rand() % 3 +1;
cout << a[i] << " ";
}
cout <<"\n";
for (int i = 0; i < n; i++){
switch(a[i]){
case 1:
k1++; break;
case 2:
k2++; break;
case 3:
k3++; break;
}
}
cout << "k1 = " << k1 << " k2 = " << k2 << " k3 = " << k3 <<"\n";
return 0;
}
Пример:
2 1 2 1 2 1 3 3 2 3 1 3 1 2 3 2 1 3 3 3
k1 = 6 k2 = 6 k3 = 8
// PascalABC.NET 3.1, сборка 1230 от 27.04.2016
procedure Times(a:array of string; pic:string; var n:integer);
begin
n:=a.Where(s->s=pic).Count
end;
begin
var s:=ReadlnString('>').ToWords;
var k:integer;
var w:='ЗНАЧИТ'; Times(s,w,k); Println(k,'-',w);
w:='ВОТ'; Times(s,w,k); Println(k,'-',w);
w:='АВТОМОБИЛЬ'; Times(s,w,k); Println(k,'-',w);
end.
Тестовое решение
> ВОТ ЗНАЧИТ КАКОЕ ДЕЛО БЫЛО ЕХАЛ ПО ДОРОГЕ АВТОМОБИЛЬ И ВОТ СТОИТ ЧЕЛОВЕК И ДУМАЕТ А ЧТО ЗНАЧИТ СЛОВО АВТОМОБИЛЬ А СЛОВО АВТОМОБИЛЬ ЭТО ОТ ГРЕЧЕСКОГО АУТОС (САМ) И ЛАТИНСКОГО МОБИЛИС (ПОДВИЖНЫЙ) ВОТ ТАКОЕ ЭТО СЛОВО
2 - ЗНАЧИТ
3 - ВОТ
3 - АВТОМОБИЛЬ