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

Не правильно работает код (отсортировать по алфавиту массив строк) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Что означают << и >> в конкретном случае? http://www.cyberforum.ru/cpp-beginners/thread623619.html
Добрый день! Подскажите, пожалуйста, почему int x,y,z y=8 z=2 x=1 x=x+z<<2+z>>4
C++ Тригонометрия КАК найти значение выражения arcsin (формула какая нибудь) http://www.cyberforum.ru/cpp-beginners/thread623596.html
Блуждающая ошибка! F5- без ошибки, Ctrl+F5 - с вылетом! о как! C++
Компилятор вижуал студия 2010, Кидаете в компилятор, Добавляете через меню "Dobaviti studenta" один или два или три студента(столько раз надо запустить), сохраняем через пункт меню выходим А дальше играемся: load, показать на экран, екзит. И такое F5- без ошибки, Ctrl+F5 - с вылетом! Шо его делать? Что править без понятия!!!!! Жесть а не ошибка. #include <iostream> #include <string.h>...
Ветвление C++
я начал учить с++, уже второй день........... написал алгоритм с ветвлением #include <stdio.h> #include <iostream.h> #include <conio.h> int main(int nNumberofArgs, char*pzArgs) {setlocale(LC_ALL,"Russian"); int num1; cout << "введите первое число: "; cin >> num1;
C++ Узнать запущена ли служба Windows http://www.cyberforum.ru/cpp-beginners/thread623576.html
Как узнать запущена ли оперделенная служба Windows, если конкретно служба управления подключениями удаленного доступа. Т.е моей программке находящейся в автозапуске нужно ждать покаместь служба не запустится, а затем затем она должна запустить rasdial.exe для установления соединения.
C++ Вычисление среднего балла Прошу, подскажите как можно реализовать следующее задание: вычислить средний балл по каждому студенту и по каждой дисциплине, количество задолженностей и количество задолженников по группе. Заранее спасибо. подробнее

Показать сообщение отдельно
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
14.07.2012, 13:33     Не правильно работает код (отсортировать по алфавиту массив строк)
Добавлено через 1 минуту
Цитата Сообщение от Sylar9 Посмотреть сообщение
я не могу понять как прервать ввод с помощью символа $, подскажите плиз очень нужно целый день сижу не фига в голову не лезит
Исправить, то, что я написал.
код
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
#include <iostream>
#include <string>
#include <locale.h>
using namespace std;
void bubbleSort(string*, int);
int main()
{
    setlocale(LC_ALL, "Rus");
    string str[100];
    int n = 0; 
    cout << "Введите строку, конец ввода символ $" << endl;
    for(int i=0; i<100; i++)
    {
        cin >> str[i]; 
        if(str[i] == "$") break;
        else ++n;
    }
    cout << "Массив до сортировки ...." << endl;
    cout << n << endl;
    for (int i=0; i<n; i++)
        cout << str[i];
    cout << "Массив после сортировки ...." << endl;
    bubbleSort(str, n);
    for (int i=0; i<n; i++)
    cout << str[i];
 
    system("pause");
    return 0;
}
 
void bubbleSort(string* arr, int size)
{
  string tmp;
  int i, j;
  for(i=0; i<size-1; ++i)
  {
    for (j=0; j<size-1; ++j)
    {
      if(arr[j+1] < arr[j])
      {
        tmp = arr[j+1];
        arr[j+1] = arr[j];
        arr[j] = tmp;
      }
    }
  }
}
.

Добавлено через 11 минут
Но программа у вас сортирует не массив строк, а слова.

Добавлено через 7 минут
Вот так, нормально будет:
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
#include <iostream>
#include <string>
#include <locale.h>
using namespace std;
 
void bubbleSort(string*, int);
 
int main()
{
    setlocale(LC_ALL, "Rus");
    string str[100];
    int n = 0; 
    cout << "Введите строку, конец ввода символ $" << endl;
    for(int i=0; i<100; i++)
    {
        
        getline(cin, str[i]);
        if(str[i] == "$") break;
        else ++n;
    }
    cout << "Массив до сортировки ...." << endl;
    cout << n << endl;
    for (int i=0; i<n; i++)
        cout << str[i] << endl;
    cout << "Массив после сортировки ...." << endl;
    bubbleSort(str, n);
    for (int i=0; i<n; i++)
    cout << str[i] << endl;
 
    system("pause");
    return 0;
}
 
void bubbleSort(string* arr, int size)
{
  string tmp;
  int i, j;
  for(i=0; i<size-1; ++i)
  {
    for (j=0; j<size-1; ++j)
    {
      if(arr[j+1] < arr[j])
      {
        tmp = arr[j+1];
        arr[j+1] = arr[j];
        arr[j] = tmp;
      }
    }
  }
}
Для прерывания ввода, в пустой строке ввести $.
 
Текущее время: 04:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru