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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Вид функций http://www.cyberforum.ru/cpp-beginners/thread88787.html
Помогите оформить эту программу в виде функций! Условие задачи точно не помню Сначало найти сумму элементов матрицы А, потом заменить среднее значение этой суммы строкой матрицы b. #include<iostream.h> #include<conio.h> #include<math.h> int const n=4, m=4; void main () { clrscr ();
C++ Клавиши UP, DOWN, LEFT, RIGHT Как в консольных приложениях работать с клавишами UP, DOWN, LEFT, RIGHT. Можете написать пример, перемишения точки по экрану http://www.cyberforum.ru/cpp-beginners/thread88779.html
Сумма элементов с положительными индексами C++
Задача В одномерном массиве найти сумму элементов с положительными индексами! Можно ли её адаптировать под borland c++ 3.1? Добавлено через 24 минуты Извиняюсь, задача звучит так В одномерном массиве найти сумму элементов с четными индексами!
Отделение интерфейса класса от реализации C++
Осваиваю раздел одной книги "Отделение интерфейса класса от реализации". То что получилось можно и нужно скачать по адресу http://************.com/files/sd0dbt0bs (Проект VS9). GradeBook.h - заголовочный файл с определением класса. Gradecook.cpp - файл исходников с определением элемент функций класса. main.cpp - файл исходников, в котором находится ф-я int main(). Интересуют именно строки...
C++ Прототип и функция http://www.cyberforum.ru/cpp-beginners/thread88765.html
Не могу решить задачу Напишите прототип и функцию, вычисляющщую количество четных и нечетных чисел в двумерном массиве. Помогите пож-ста!
C++ Не параллелипеидальный объёмный массив Не знаю, где лучше разместить эту тему. В алгоритмах что ли? Или в c++? Подскажите как организовать массивы с декартовыми и криволинейными координатами в пределах тел сложной формы в качестве индексов. Общее свойство: диапазоны одних индексов зависят от значений других. Как описать геометрию ограничивающего тела, составленного из нескольких более простых не выше второго порядка, описываемых... подробнее

Показать сообщение отдельно
qwarta
 Аватар для qwarta
58 / 58 / 5
Регистрация: 20.11.2009
Сообщений: 215
30.01.2010, 18:24     Отсортировать слова по длине
Хотел помочь VLAD1M1R с решением, да так и застрял. Может кто подскажет:

1. Почему вывод вроде бы делается правильно, но с лишними символами?
язва#
инфекционноеx☺=
группы=
животного☺=
язвой☺=
группы= животного☺= инфекционноеx☺= язва# язвой☺=
В результате не работает сортировка. В процессе написания программы в строке 81 применял одномерный массив mas[k] и вывод был правильным.

2. Нужно отсекать символы кавычек. Как их вставить в строку if(!strchr(",.!?-:;()",ch))

Вот код:
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
//Есть файл со словами. Вывести на экран все слова, в которых количество гласных, стоящих на 
//позициях с четными и нечетными номерами одинакова. Слова отсортировать по длине.
 
#include <stdio.h>
#include <windows.h>
#define MAX 20
 
int main(void)
{
  char str[MAX],mas[MAX][MAX],buf[MAX],ch;
  int i,k,len,chet,nechet,cout;
  FILE *fp;
 
  char* Rus(char *message)                            // для вывода русского текста
  {
        CharToOem(message, buf);
        return buf;
  }
 
  void qsort_st(char ftm[][MAX],int left, int right)      // сортировка строк методом Хоара
  {
   register int i,j;
   char *st;
   char temp[MAX];
   
   i=left; j=right;
   st=ftm[(left+right)/2];
   
   do {
     while((strcmp(ftm[i],st)<0) && (i<right)) i++;
     while((strcmp(ftm[j],st)>0) &&(j>left)) j--;
     if(i<=j)
     {
       strcpy(temp,ftm[i]);
       strcpy(ftm[i],ftm[j]);
       strcpy(ftm[j],temp);
       i++;
       j--;
     }
   }while(i<j);
   if(left<j) qsort_st(ftm,left,j);
   if(i<right) qsort_st(ftm,i,right);
  }
 
  if((fp=fopen("F.txt","r"))==NULL)
  {
    printf("Error opening file!\n");
    exit(1);
  }
  i=k=len=chet=nechet=cout=0;
 
  while (!feof(fp))                          // пока не достигнут конец файла
  {
    ch=getc(fp);
    if(ch==' ' || ch=='\n' || ch=='\t')      // разделяем на слова
    {
      if(len>1)                              // пропускаем однобуквенные союзы
      {
        str[i]='\0';
        for(i=0;i<len;i++)
        {
          if(strchr("аеиоуыэюя",str[i]))     // считаем гласные
          {
            cout=i+1;
            if(!(cout%2))                    // если на четной позиции
              chet++;
            else                             // если на нечетной позиции
              nechet++; 
          }
        }
        if((chet != 0) && (chet==nechet))    // если кол-во гласных одинаковое
        {
          for(i=0;i<len;i++)
          {
            if(i>MAX-1)
            {
              printf(Rus("Превышение отведенного лимита букв для слова"));
              exit(1);
            }
            mas[k][i]=str[i];                   // записываем слово
          }
//---------- в рабочей программе этого не нужно - промежуточный вывод -------------------
          printf("%s\n",Rus(mas[k]));
//--------------------------------------------------------------------------------------- 
          k++;
          if(k==MAX-1)
          {
              printf(Rus("Нужно увеличить объем массива для чтения!"));
              exit(1);
          }
        }
      }
      i=len=chet=nechet=0;
    }
    else
    {
      if(!strchr(",.!?-:;()",ch))             // если знак препинания - пропускаем его
      {
        str[i]=ch;                          // иначе записываем символ в массив
        i++;
        len++;
      }
    }
  }
  qsort_st(mas,0,k-1);                         // сортируем слова по длине
  for(i=0;i<k;i++)
  {
    printf("%s  ",Rus(mas[i]));
  }
  fclose(fp);
  getch();
  return 0;
}
 
Текущее время: 07:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru