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

Дано 4 цифры, напечатать цифры в порядке возрастания - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.90
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,141
Завершенные тесты: 1
30.09.2010, 18:33     Дано 4 цифры, напечатать цифры в порядке возрастания #1
в программе ввел 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
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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
void lowtohigh(int a, int b,int c, int d)
{
 
if(a>b && a>c && a>d)   //A
{
    cout<<a;
 
        if(b>c && b>d)
        {
    cout<<b;
    if(c>d){
    cout<<c;
    cout<<d;
    }
    else
    {
    cout<<d;
    cout<<c;
    }
    }
 
    else if(b>c && b>d)
        {
    cout<<b;
    if(c>d){
    cout<<c;
    cout<<d;
    }
    else
    {
    cout<<d;
    cout<<c;
    }
    }
 
    else if(d>b && d>a)
        {
    cout<<d;
    if(a>b){
    cout<<a;
    cout<<b;
    }
    else
    {
    cout<<b;
    cout<<a;
    }
    }
}
 
 
if(b>a && b>d && b>c)   //B
{
    cout<<b;
 
        if(a>c && a>d)
        {
    cout<<a;
    if(c>d){
    cout<<c;
    cout<<d;
    }
    else
    {
    cout<<d;
    cout<<c;
    }
    }
 
    else if(d>c && d>b)
        {
    cout<<d;
    if(c>b){
    cout<<c;
    cout<<b;
    }
    else
    {
    cout<<b;
    cout<<c;
    }
    }
 
    else if(c>d && c>a)
        {
    cout<<c;
    if(a>d){
    cout<<a;
    cout<<d;
    }
    else
    {
    cout<<d;
    cout<<a;
    }
    }
}
 
if(c>a && c>b && c>d)   //C
{
    cout<<c;
 
        if(a>b && a>d)
        {
    cout<<a;
    if(d>b){
    cout<<d;
    cout<<b;
    }
    else
    {
    cout<<b;
    cout<<d;
    }
    }
 
    else if(b>d && b>a)
        {
    cout<<b;
    if(d>a){
    cout<<d;
    cout<<a;
    }
    else
    {
    cout<<a;
    cout<<d;
    }
    }
 
    else if(d>b && d>a)
        {
    cout<<d;
    if(d>b){
    cout<<d;
    cout<<b;
    }
    else
    {
    cout<<b;
    cout<<d;
    }
    }
}
 
if(d>a && d>b && d>c)   //D
{
    cout<<d;
 
        if(a>c && a>b)
        {
    cout<<a;
    if(c>b){
    cout<<c;
    cout<<b;
    }
    else
    {
    cout<<b;
    cout<<c;
    }
    }
 
    else if(b>c && b>a)
        {
    cout<<b;
    if(c>a){
    cout<<c;
    cout<<a;
    }
    else
    {
    cout<<a;
    cout<<c;
    }
    }
 
    else if(c>b && c>a)
        {
    cout<<c;
    if(a>b){
    cout<<a;
    cout<<b;
    }
    else
    {
    cout<<b;
    cout<<a;
    }
    }
}
 
}

прошу оценить
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.09.2010, 18:33     Дано 4 цифры, напечатать цифры в порядке возрастания
Посмотрите здесь:

Упорядочить цифры в порядке возрастания/убывания C++
Напечатать в возрастающем порядке все цифры,не входящие в запись данного натур. числа C++
Найти все четные четырехзначные числа, цифры которых следуют в порядке возрастания или убывания C++
Ввести с клавиатуры целое положительное число. Напечатать его цифры через пробел в прямом порядке C++
C++ Дано натуральное число n (n <= 9999). Учитывая все четыре цифры числа, определить, правильно, что оно содержит: все разные цифры
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
30.09.2010, 18:36     Дано 4 цифры, напечатать цифры в порядке возрастания #2
Мама...
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,141
Завершенные тесты: 1
30.09.2010, 18:38  [ТС]     Дано 4 цифры, напечатать цифры в порядке возрастания #3

а как бы вы предложили мне написать то?
в курсе прошли только иф/элс и все...


а задача была такая, есть 4 цифры,напечатать цифры в порядке возрастания... еще надо в порядке убывания написать
Selina
122 / 0 / 0
Регистрация: 10.10.2009
Сообщений: 23
30.09.2010, 18:41     Дано 4 цифры, напечатать цифры в порядке возрастания #4
Если никто не запрещал пользоваться циклами и массивами, лучше погуглить и переписать.
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
30.09.2010, 18:43     Дано 4 цифры, напечатать цифры в порядке возрастания #5
отсортировать перед выводом было не судьба?
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,141
Завершенные тесты: 1
30.09.2010, 18:44  [ТС]     Дано 4 цифры, напечатать цифры в порядке возрастания #6
Selina, я же сказал,я могу как то циклами и массивами делать,но курс этого не знает, я получу 0 вместо 100 на уроке...
alex_x_x, то есть
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
30.09.2010, 18:47     Дано 4 цифры, напечатать цифры в порядке возрастания #7
Фух... В порядке убывания меняем только строку вывода соответственно.

C++
1
2
3
4
5
6
7
8
9
10
11
int main()
{
    int max=(a>b&&a>c&&a>d)?a:(b>c&&b>d&&b>a)?b:(c>a&&c>b&&c>d)?c:d;
    int min=(a<b&&a<c&&a<d)?a:(b<c&&b<d&&b<a)?b:(c<a&&c<b&&c<d)?c:d;
    int middle1=(a>min&&a<max)?a:(b>min&&b<max)?b:(c>min&&c<max)?c:d;
    int middle2=(a>min&&(a<middle1||a>middle1)&&a<max)?a:(b>min&&(b<middle1||b>middle1)&&b<max)?b:(c>min&&(c<middle1||c>middle1)&&c<max)?c:d;
    int middle3=(middle1<middle2)?middle1:middle2;
    int middle4=(middle1>middle2)?middle1:middle2;
    std::cout<<min<<' '<<middle3<<' '<<middle4<<' '<<max<<'\n';
    return 0;
}
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
30.09.2010, 18:48     Дано 4 цифры, напечатать цифры в порядке возрастания #8
Цитата Сообщение от МедведЪ Посмотреть сообщение
то есть
К примеру пузырьком.
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,141
Завершенные тесты: 1
30.09.2010, 18:55  [ТС]     Дано 4 цифры, напечатать цифры в порядке возрастания #9
Lavroff, лол, ? и : тоже не прошли

Asics^, какой пузырек?

Добавлено через 17 секунд
Asics^, уважаемый, вы читаете верхние посты? -_-
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
30.09.2010, 18:55     Дано 4 цифры, напечатать цифры в порядке возрастания #10
МедведЪ, Тогда плохо. Тернарный оператор проходится вместе с if/else.
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,141
Завершенные тесты: 1
30.09.2010, 18:58  [ТС]     Дано 4 цифры, напечатать цифры в порядке возрастания #11
Lavroff, на лекции другой учитель про это заговорил,но на компах и на доске не писали с этим оператором
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
30.09.2010, 18:59     Дано 4 цифры, напечатать цифры в порядке возрастания #12
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void swap( int *a, int *b ){ int c = *a; *a = *b; *b = c; }
 
void sort( int* lpArr, int nSize ){
  int i,j;
  for( i=0;i<nSize;++i ){
    for( j=i+i;j<nSize;++j ){
      if( lpArr[i] > lpArr[j] ) swap( lpArr+i,lpArr+j );
    }
  }
}
int main(){
  int arr[] = {-3,2,10,0,23}, i;
  sort( arr, 5 );
  for( i=0;i<5;++i ) printf( "%d ", arr[i] );
  return 0;
}
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9372 / 5422 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
30.09.2010, 19:00     Дано 4 цифры, напечатать цифры в порядке возрастания #13
Сдалось вам всем эти 4 числа сравнивать? Уже третяя примерно тема про это за последнюю неделю.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
 
#define MIN(a, b) ( (a) < (b) ? (a) : (b) )
#define MAX(a, b) ( (a) > (b) ? (a) : (b) )
 
int main(void){
    int a, b, c, d;
 
    printf("a = ");
    scanf("%d", &a);
    printf("b = ");
    scanf("%d", &b);
    printf("c = ");
    scanf("%d", &c);
    printf("d = ");
    scanf("%d", &d);
 
    printf("Sorted: %d %d %d %d\n", MIN(MIN(a, b), MIN(c, d)), MAX(MIN(a, b), MIN(c, d)),
           MIN(MAX(a, b), MAX(c, d)), MAX(MAX(a, b), MAX(c, d)) );
 
    return 0;
}
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
30.09.2010, 19:01     Дано 4 цифры, напечатать цифры в порядке возрастания #14
easybudda, Полагаю что макросы и функции им тоже не подходят.
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,141
Завершенные тесты: 1
30.09.2010, 19:03  [ТС]     Дано 4 цифры, напечатать цифры в порядке возрастания #15
ой ой ой...страшные define и функции...я говорю ПРОШЛИ ТОЛЬКО IF\ELSE ничего больше...


блин если бы учитель не настаивал только с if\else написать я бы за 10 мин с массивами написал...

Добавлено через 13 секунд
Lavroff, да да

Добавлено через 40 секунд
мы,мм....точнее наш курс только недельку начали программировать...
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
30.09.2010, 19:17     Дано 4 цифры, напечатать цифры в порядке возрастания #16
Надеюсь логические операции проходили...

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
int main()
{
    int min=0, middle1=0, middle2=0, max=0, tempmiddle1=0, tempmiddle2=0;
    if(a<b&&a<c&&a<d)
         min=a;
    else if(b<a&&b<c&&b<d)
         min=b;
    else if(c<a&&c<b&&c<d)
         min=c;
    else if(d<a&&d<b&&d<c)
         min=b;
    if(a>b&&a>c&&a>d)
         max=a;
    else if(b>a&&b>c&&b>d)
         max=b;
    else if(c>a&&c>b&&c>d)
         max=c;
    else if(d>a&&d>b&&d>c)
         max=d;
    if(a>min&&a<max)
         tempmiddle1=a;
    else if(b>min&&b<max)
         tempmiddle1=b;
    else if(c>min&&c<max)
         tempmiddle1=c;
    else if(d>min&&d<max)
         tempmiddle1=d;
     if(a>min&&(a<middle1||a>middle1)&&a<max)
         tempmiddle2=a;
     else if(b>min&&(b<middle1||b>middle1)&&b<max)
         tempmiddle2=b;
     else if(c>min&&(c<middle1||c>middle1)&&c<max)
         tempmiddle2=c;
     else if(d>min&&(d<middle1||d>middle1)&&d<max)
          tempmiddle2=d;
     if(tempmiddle1<tempmiddle2)
          middle1=tempmiddle1;
     else
          middle1=tempmiddle2;
     if(tempmiddle1>tempmiddle2)
           middle2=tempmiddle1;
     else 
           middle2=tempmiddle2;
}
дальше попозже допишу
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
30.09.2010, 19:22     Дано 4 цифры, напечатать цифры в порядке возрастания #17
Цитата Сообщение от МедведЪ Посмотреть сообщение
Asics^, какой пузырек?
Пузырьковая сортировка.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9372 / 5422 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
30.09.2010, 19:30     Дано 4 цифры, напечатать цифры в порядке возрастания #18
Цитата Сообщение от МедведЪ Посмотреть сообщение
блин если бы учитель не настаивал только с if\else написать я бы за 10 мин с массивами написал...
Да кто бы сомневался
Вот с if/else
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
#include <stdio.h>
 
int main(void){
    int a, b, c, d;
 
    printf("a = ");
    scanf("%d", &a);
    printf("b = ");
    scanf("%d", &b);
    printf("c = ");
    scanf("%d", &c);
    printf("d = ");
    scanf("%d", &d);
 
    if ( a < b ){
        if ( c < d ){
            if ( a < c )
                printf("%d %d ", a, c);
            else
                printf("%d %d ", c, a);
            if ( b < d )
                printf("%d %d\n", b, d);
            else
                printf("%d %d\n", d, b);
        }
        else {
            if ( a < d )
                printf("%d %d ", a, d);
            else
                printf("%d %d ", d, a);
            if ( b < c )
                printf("%d %d\n", b, c);
            else
                printf("%d %d\n", c, b);
        }
    }
    else {
        if ( c < d ) {
            if ( b < c )
                printf("%d %d ", b, c);
            else
                printf("%d %d ", c, b);
            if ( a < d )
                printf("%d %d\n", a, d);
            else
                printf("%d %d\n", d, a);
        }
        else {
            if ( b < d )
                printf("%d %d ", b, d);
            else
                printf("%d %d ", d, b);
            if ( a < c )
                printf("%d %d\n", a, c);
            else
                printf("%d %d\n", c, a);
        }
    }
 
    return 0;
}
Интересно, что кроме паранои подобные задания развивают?
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
30.09.2010, 19:32     Дано 4 цифры, напечатать цифры в порядке возрастания #19
Надеюсь логические операции проходили...
Это ...
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 <iostream>
 
int main()
{
    int a=5, b=3, c=1, d=2;
    int min=0, middle1=0, middle2=0, max=0, tempmiddle1=0, tempmiddle2=0;
    if(a<b&&a<c&&a<d)
         min=a;
    else if(b<a&&b<c&&b<d)
         min=b;
    else if(c<a&&c<b&&c<d)
         min=c;
    else if(d<a&&d<b&&d<c)
         min=b;
    if(a>b&&a>c&&a>d)
         max=a;
    else if(b>a&&b>c&&b>d)
         max=b;
    else if(c>a&&c>b&&c>d)
         max=c;
    else if(d>a&&d>b&&d>c)
         max=d;
    if(a>min&&a<max)
         tempmiddle1=a;
    else if(b>min&&b<max)
         tempmiddle1=b;
    else if(c>min&&c<max)
         tempmiddle1=c;
    else if(d>min&&d<max)
         tempmiddle1=d;
     if(a>min&&(a<tempmiddle1||a>tempmiddle1)&&a<max)
         tempmiddle2=a;
     else if(b>min&&(b<tempmiddle1||b>tempmiddle1)&&b<max)
         tempmiddle2=b;
     else if(c>min&&(c<tempmiddle1||c>tempmiddle1)&&c<max)
         tempmiddle2=c;
     else if(d>min&&(d<tempmiddle1||d>tempmiddle1)&&d<max)
          tempmiddle2=d;
     if(tempmiddle1<tempmiddle2)
          middle1=tempmiddle1;
     else
          middle1=tempmiddle2;
     if(tempmiddle1>tempmiddle2)
           middle2=tempmiddle1;
     else 
           middle2=tempmiddle2;
     std::cout<<min<<' '<<middle1<<' '<<middle2<<' '<<max<<'\n';
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.09.2010, 19:37     Дано 4 цифры, напечатать цифры в порядке возрастания
Еще ссылки по теме:

C++ Дано целое число. Вывести набор символов содержит цифры этого числа в обратном порядке
C++ Дано предложение. Напечатать все слова в порядке возрастания их длин
вывести все 3-х значные числа, цифры которых находятся в порядке возрастания C++

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

Или воспользуйтесь поиском по форуму:
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2293 / 1663 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
30.09.2010, 19:37     Дано 4 цифры, напечатать цифры в порядке возрастания #20
МедведЪ, если ограничений на использование функций нет, то вот чуть переделанный вариант easybudda:
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
#include <iostream>
 
int Min(int a, int b) {
  if (a < b)
    return a;
    
  return b;
}
 
int Max(int a, int b) {
  if (a > b)
    return a;
    
  return b;
}
 
int main(void){
    int a, b, c, d;
 
    // Ввод a, b, c и d
    
    std::cout << Min(Min(a, b), Min(c, d)) << Max(Min(a, b), Min(c, d)) <<
                 Min(Max(a, b), Max(c, d)) << Max(Max(a, b), Max(c, d)) << std::endl;
 
    return 0;
}
Yandex
Объявления
30.09.2010, 19:37     Дано 4 цифры, напечатать цифры в порядке возрастания
Ответ Создать тему
Опции темы

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