#include <iostream> #include <string> using namespace std; #define N 5 #define LITERA 'a' int main(int argc, char *argv[]) { string s[N]; for (int i=0; i<N; i++) { cout << "input " << i << " string: "; getline(cin, s[i]); } int min_index = -1; int min_count = -1; int max_index = -1; int max_count = -1; for (int i=0; i < N; i++) { int count = 0; for (int j=0; j < s[i].length(); j++) { if (LITERA == s[i].at(j)) { count++; } } if (0 != count) { if (-1 == min_count) { min_count = count; min_index = i; } else { if (count < min_count) { min_count = count; min_index = i; } } } if (count > max_count) { max_count = count; max_index = i; } } if (-1 != max_index) { cout << "в строке " << max_index << " больше всего (" << max_count << ") " << "букв '" << LITERA << "'" << endl; } else { cout << "ни в одной строке нет буквы '" << LITERA << "'" << endl; } if (-1 != min_index) { cout << "в строке " << min_index << " меньше всего (" << min_count << ") " << "букв '" << LITERA << "'" << endl; } return 0; }
вывод
input 0 string: fdfads input 1 string: dfadfafad input 2 string: dfadfadfadfad input 3 string: dadf input 4 string: dafadfadfad в строке 2 больше всего (4) букв 'a'
супер!
ОтветитьУдалитьспасибо!!
только вы перепутали
ОтветитьУдалитьмне нужнобыло мин кол-во букв в строчке
а не максимальное
я просто исправлю max на min
спасибо ещё раз!!
ах да! )))
ОтветитьУдалитьпосмотрите пожалуйста мою программу,которая ищет букву а в строке
ОтветитьУдалитькак мне вывести на экран только одно слово с самым меньшим кол-вом буквы а?
#include "STRING.H"
#include "iostream.h"
void main()
{
char stroka[20];
cout<<"vvedite 5 strok";
for(int i=0;i<5;i++)
{cin>>stroka;
if(strchr(&stroka[0],'a'))
cout<<"est bukva a";
else
cout<<"net bukva a" ";
}
}
с таким условием задача решается немного по-другому
ОтветитьУдалитьhttp://resheno.blogspot.com/2009/12/blog-post_15.html
извините но ваша программа неправильно работает
ОтветитьУдалитьмне нужно чтоб при вводе 5 строк программа выводила на экран только 1 строку с самым маленьким числом буквы 'a'
а ваша программа этого не делает
исправьте пожалуйста
у вас пять пятниц на неделе )))
ОтветитьУдалитьпосмотрите - я переделал оригинал - теперь находит и минимум и максимум
спасибо большое!
ОтветитьУдалитьтеперь всё понятно и всё работает!!
ВЫ СУПЕР!!!