Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
VLAD1M1R
0 / 0 / 0
Регистрация: 04.11.2009
Сообщений: 55
#1

Отсортировать слова по длине - C++

23.01.2010, 14:30. Просмотров 423. Ответов 1
Метки нет (Все метки)

Вот условие программы: "Есть файл со словами. Вывести на экран все слова в которых количество гласных, стоящих на позициях с четными и нечетными номерами одинакова. Слова отсортировать по длине." Помогите пожалуйста доработать программу.. Вот мой код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <string>
 
 
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{ int a,i,k=0, b=0, j=0,p,v;
string w[100], b, h[10], temp;
cin>>b;
ifstream f("1.txt");
while (!f.eof())
{f>>w;
for (i=0; i<strlen(w);i=i+2)
  if (w[i]==e | w[i]==y | w[i]==u | w[i]==i | w[i]==o | w[i]==a)
   k=k+1;
for (i=1; i<strlen(w);i=i+2)
  if (w[i]==e | w[i]==y | w[i]==u | w[i]==i | w[i]==o | w[i]==a)
   b=b+1;
if (b==k)
{j=j+1;
h[j]=w;
b=0; k=0;}
else 
{b=0; k=0;}
}
 
for (z=0; z<j; z++)
for (p=0; p<j; p++)
if (strlen(h[p])>strlen(h[p+1]))
 {temp=h[p];
 h[p]=h[p+1]
 h[p+1]=temp;
 }
 
for (v=0; v<j+1: v++)
cout<<h[v]<<endl;
 
 return 0;
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.01.2010, 14:30     Отсортировать слова по длине
Посмотрите здесь:

Отсортировать слова по длине - C++
Здравствуйте, у меня есть задание с таким условием: &quot;Есть файл со словами. Вывести на экран все слова в которых количество гласных, стоящих...

Отсортировать слова в предложении по их длине,начиная с наибольшего - C++
отсортировать слова в предложении по их длине,начиная с наибольшего

Сортировка строки по длине слова - C++
Сабж. Здравствуйте. Есть код, который вроде логически построен правильно, но он не работает. Уже не знаю как быть. Подскажите пожалуйста в...

Сортировка строк по длине первого слова - C++
Добрый вечер формучане.Облазил весь нет как и этот форум но толком ничего не нашел.Собственно обращаюсь с просьбой решить эту задачку....

Сортировка слов в строке по длине слова - C++
Помогите пожалуйста с алгоритмом сортировки строки. Необходимо осуществить сортировку строки чтобы в начале строки располагалось слово...

Дополнить каждое слово предложения пробелами (по длине максимального слова) - C++
Вот задачка. &quot;Дополнить каждое слово предложения пробелами так, чтобы его длина была равна длине самого длинного слова. Распечатать...

В заданной строке вывести все слова по длине попадающие в заданный интервал - C++
Помогите. Вывести на экран все слова, которые встречаются в заданном строке и по длине попадают в заданный интервал. #include...

В строку через пробел вводятся слова. Отсортировать введенные слова по алфавиту. Результат вывести в виде столбца. - C++
В строку через пробел вводятся слова. Отсортировать введенные слова по алфавиту. Результат вывести в виде столбца.

Определить количество слов в тексте, и вывести слова, которые по длине меньше заданного числа - C++
Помогите написать прогу... Не работает..;) /*Дан текст, в котором слова разделяются пробелами, * в конце стоит точка. Определить...

Присоединить к меньшей по длине строке большую и исключить слова, содержащие меньше двух букв - C++
Одну строку инициализировать в программе, другую – ввести с клавиа- туры. Присоединить к меньшей по длине строке большую. Отредактировать...

Ввести строку. Вывести строку так, чтобы за каждым словом следовало количество пробелов, равное длине слова. - C++
Ввести строку. Вывести строку так, чтобы за каждым словом следовало количество пробелов, равное длине слова.

Отсортировать слова - C++
В общем у меня вот такая проблема... Работу надо сделать в среде borland c++ 3.1, я написал код, проверил вроде все работает, однако как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
TanT
эволюционирую потихоньку
465 / 463 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
23.01.2010, 20:20     Отсортировать слова по длине #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <algorithm>
 
using namespace std;
 
// Вывести на экран все слова в которых количество гласных, стоящих на позициях с четными и нечетными номерами одинакова.
 
bool CheckOnVowel(char s)
{
    switch(s) {
        case 'e':
        case 'E':
        case 'u':
        case 'U':
        case 'i':
        case 'I':
        case 'o':
        case 'O':
        case 'a':
        case 'A':
        case 'y':
        case 'Y': return true;
    }
    return false;
}
 
bool CheckNumberVowel(string &str) 
{
 
    int numEven=0, numOdd=0;
    for (int i=str.length(); --i>=0;)   
    {
        if(CheckOnVowel(str[i])==true)  
        {
          if(i%2==0) // если номер позиции чётный
                ++numEven; // увеличиваем счётчик
            else         // иначе уменьшаем, в итоге если счётчик 0 то количество совпало 
                ++numOdd;  
        } // end if(CheckOnVowel(str[i])==true)             
    } // end for (int i=str.length(); --i>=0) 
 
    if(numOdd==numEven) return true;
 
    return false;
} // end CheckNumberVowel
 
 
bool CompareFun(string x, string y)
{
  if(x.length()<y.length()) return true;
 
    return false;
}
 
 
 
int main()
{
    char *File="text.txt";
    string str;
    int k=0;
    vector<string> storage; 
 
    ifstream f(File);
    if (!(f.is_open())) { // проверка наличия файла с тестом
        cout<<"ERROR: not file "<<File;
        system("PAUSE");
        return 1;
    }
    
    while(!f.eof()) { // чтении из файла
        
        f>>str;
        if(CheckNumberVowel(str)==true) storage.push_back(str);
    }
 
    sort(storage.begin(), storage.end(), CompareFun);
 
    for (vector<string>::iterator it =storage.begin(); it!=storage.end(); it++)
        cout<<*it<<endl;
 
    f.close();
    cout << endl;
    system("PAUSE");
    return 0;
}
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru