Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <fstream>
- #include <vector>
- #include <cstring>
- using namespace std;
- ifstream fin("date.in");
- vector<string> vectorCuv;
- string sir, vowels = "aeiouAEIOU";
- int numOfVowels(string one) {
- int nrVoc = 0;
- for(int i = 0; i < one.size(); ++i) {
- if(vowels.find(one[i]) != -1) { //aflu cate vocale are fiecare cuvant
- ++nrVoc;
- }
- }
- return nrVoc;
- }
- void read() {
- while (fin >> sir) {
- vectorCuv.push_back(sir); //creez vectorul de cuvinte
- }
- }
- void sortAfterVowels(vector<string> vectorCuv) {
- for(int i = 0; i < vectorCuv.size() - 1; ++i) {
- for(int j = i + 1; j < vectorCuv.size(); ++j) { //sortarea cu 2 for-uri
- if(numOfVowels(vectorCuv[i]) > numOfVowels(vectorCuv[j])) { //nrVoc pt (exemplu) anabela si ana este 4 si 2 deci trebuie interschimbate
- swap(vectorCuv[i], vectorCuv[j]);
- } else if(numOfVowels(vectorCuv[i]) == numOfVowels(vectorCuv[j])) { //daca au acelas nr de voc verific lexicografic
- for(int d = 0; d < vectorCuv[i].size(); ++d) {
- if(vectorCuv[i][d] > vectorCuv[j][d]) {
- swap(vectorCuv[i], vectorCuv[j]);
- break;
- } else if(vectorCuv[i][d] < vectorCuv[j][d]) {
- break;
- }
- }
- }
- }
- }
- }
- void print() {
- for (int i = 0; i < vectorCuv.size(); ++i) { //afisez
- cout << vectorCuv[i] << '\n';
- }
- }
- int main(void) {
- read();
- sortAfterVowels(vectorCuv);
- print();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement