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

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

Войти
Регистрация
Восстановить пароль
 
Jezus
Сообщений: n/a
#1

распечатать по возрастанию - C++

26.10.2010, 21:39. Просмотров 482. Ответов 5
Метки нет (Все метки)

помогите написать прогу пожалуйста:
"Предложение состоит из записи символов цифр, например:
123434 53423 2344 6564.
Распечатать слова в порядке возрастания.
Реализуйте действия задания по вводу, преобразо-
ванию и распечатке результата в виде собственных функций. Использование
глобальных переменных запрещено. Все исходные данные функция должна по-
лучать в виде параметров. Каждая функция должна выполнять строго опреде-
ленное действие."
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.10.2010, 21:39     распечатать по возрастанию
Посмотрите здесь:

C++ Распечатать матрицу
C++ Распечатать в порядке убывания
Среди цифр введенной строки распечатать ту, которая появлялась чаще других. Если таких цифр было несколько, распечатать ту, что встречалась первой C++
Распечатать матрицу C++
C++ Распечатать данные
C++ Распечатать массив по возрастанию модулей элементов
Распечатать все палиндромы с++ C++
C++ Получить массив С(К). упорядоченный по возрастанию, путем слияния массивов A(N) и В(М). упорядоченных по возрастанию (К = N + М).
Получить массив С(К), упорядоченный по возрастанию, путем слияния массивов A(N) и B(M), упорядоченных по возрастанию (K = N + M) C++
Распечатать таблицу ASCII C++
Из двух отсортированных по возрастанию массивов сформировать третий, отсортированный также по возрастанию C++
C++ Распечатать числа в диапазоне от 1 до N

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
TheMachinist
242 / 174 / 15
Регистрация: 14.06.2010
Сообщений: 422
26.10.2010, 23:37     распечатать по возрастанию #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
#include "conio.h" 
using namespace std;
void Input(char strings[10][10]);
void Sort(char strings[10][10]);
void Output(char strings[10][10]);
 
int main()
{
    char strings[10][10]; 
     Input(strings);
Sort(strings);
Output( strings);
 
        getch();
}
 
void Output(char strings[10][10]) {
    for(int i = 0;i < 10;++i) cout << strings[i] << " ";
}
 
void Sort(char strings[10][10])
{int  num; int len;
char * pch;
for(int i = 0;i < 10;++i){
    len = strlen(strings[i]);
    pch = strings[i];
    std::sort(pch,pch+len);
}
}
 
void Input(char strings[10][10])
{
    cout << "strings : \n";
    for(int i = 0;i < 10;++i){
cout << ">   ";
gets(strings[i]);
 
    }
}
ridd[73rus]
0 / 0 / 0
Регистрация: 22.10.2010
Сообщений: 17
27.10.2010, 11:31     распечатать по возрастанию #3
дополните пожалуйста код коментами
TheMachinist
242 / 174 / 15
Регистрация: 14.06.2010
Сообщений: 422
27.10.2010, 16:36     распечатать по возрастанию #4
дополните пожалуйста код коментами
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
#include <conio.h> // в этом заголовочном файле функция _getch(). Чтобы программа после выполнения
                   // не закрывалась сразу, а остановилась
#include<iostream>
#include<algorithm> // здесь функция sort()
using namespace std;
void Input(char strings[10][10]); // это прототипы функций.Они нужны чтобы программа знала о них т.к.
void Sort(char strings[10][10]);  // выполнение программы начинается с main() , а сами функции
void Output(char strings[10][10]); // расположены после main()
 
int main()
{
        char strings[10][10]; // Инициализируем двумерный массив. Первая [10] это кол-во слов
                              // Вторая [10] это максимальное кол-во букв в каждом слове.
                          // Теперь можно ввести 10 слов до 10 букв каждое.
         Input(strings); // Вызываем наши функции,передавая им в качестве аргумента массив strings
Sort(strings);
Output( strings);
 
        getch();
}
 
void Output(char strings[10][10]) {
        for(int i = 0;i < 10;++i) cout << strings[i] << " ";
}
 
void Sort(char strings[10][10])
{ int len; // в этой переменной будем хранить длину каждого слова(сколько букв)
char * pch; // это указатель.Он будет указывать на отдельно взятое слово нашего массива
for(int i = 0;i < 10;++i){
        len = strlen(strings[i]); // стандартная функция strlen()(strlength - длина строки) возвращает длину
           // переданной ей в качестве аргумента строки
        // при первом прохождении цикла она возвращает длину первого слова массива(strings[0]) и далее
        // strings[1] (второе слово) - strings[9](последнее слово) т.к i увеличивается от 0 до 9
        pch = strings[i]; // указатель содержит в себе слово, на которое указывает
        std::sort(pch,pch+len); // функция sort() сортирует каждый символ слова по возрастанию.В качестве аргументов
} // здесь диапазон ,который надо сортировать - pch(первый символ): pch+len(последний символ слова)
} // каждый символ имеет свой цифровой код.Код символа '1' меньше чем код символа '9', таким образом
// они сортируются по возрастанию
 
void Input(char strings[10][10])
{
        cout << "strings : \n";
        for(int i = 0;i < 10;++i){ // этот цикл выполняется 10 раз.При каждом прохождении функция gets()из стандартной
cout << ">   "; // библиотеки принимает введенное с клавиатуры слово и вводит его в strings под соответствующим
               // индексом(strings[0] - strings[9]) - 10 слов
gets(strings[i]); // gets = get string(получи строку).Параметр strings[i] это массив ,в который надо поместить
        }  // символы, введеннык с клавиатуры
        }
Jezus
Сообщений: n/a
06.12.2010, 20:52     распечатать по возрастанию #5
числа задаются массивом?
в ф-ции
void Input(char strings[10][10])

в строке
cout << "> ";

выдает ошибку...как то возможно исправить? и что необходимо для того, чтобы вводить можно было лишь числа.?
TheMachinist
242 / 174 / 15
Регистрация: 14.06.2010
Сообщений: 422
06.12.2010, 22:36     распечатать по возрастанию #6
выдает ошибку...как то возможно исправить?
Возможно твой компиллятор требует включения
C++
1
#include<cstring>
если не поможет выкладывай сообщение об ошибке
что необходимо для того, чтобы вводить можно было лишь числа.?
Я тут подправил ф-цию Input() и теперь если в слове хоть один символ не является цифрой, то
это слово просто не вводится в массив. Проверяется это с помощью ф-ции isdigit() из файла cctype

А вообще я последний месяц С++ не занимаюсь, нужно другие вещи учить пока

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
#include <conio.h>
#include<algorithm>
#include<cctype>
#include <iostream>
using namespace std;
void Input(char strings[10][10]);
void Sort(char strings[10][10]);
void Output(char strings[10][10]);
 
int main()
{
        char strings[10][10]; 
         Input(strings);
Sort(strings);
Output( strings);
 
        _getch();
}
 
void Output(char strings[10][10]) {
        for(int i = 0;i < 10;++i) cout << strings[i] << " ";
}
 
void Sort(char strings[10][10])
{int  num; int len;
char * pch;
for(int i = 0;i < 10;++i){
        len = strlen(strings[i]);
        pch = strings[i];
        std::sort(pch,pch+len);
}
}
 
void Input(char strings[10][10])
{
        cout << "strings : \n";
        for(int i = 0;i < 10;++i){
cout << ">   ";
gets(strings[i]);
for(int j = 0; j < strlen(strings[i]);++j){
    if(!isdigit(strings[i][j])) {i--; break;}
}
                }
}
Yandex
Объявления
06.12.2010, 22:36     распечатать по возрастанию
Ответ Создать тему
Опции темы

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