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

Дана последовательность, элементы которой есть целые двузначные числа. Упорядочить последовательность по убыванию произведений цифр - C++

Восстановить пароль Регистрация
 
Venom33
 Аватар для Venom33
19 / 19 / 0
Регистрация: 26.01.2013
Сообщений: 287
26.01.2013, 00:20     Дана последовательность, элементы которой есть целые двузначные числа. Упорядочить последовательность по убыванию произведений цифр #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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include <iostream>
#include <conio.h>
#include <math.h>
using namespace std;
void main()
{
    int A[99],buff;
    int i,n;
    char p[10],k[10];
    bool fl;
cout<<"Vvedite koli4estvo elementov posledovatelbnostu\n";
cin>>n;
system("cls");
if ((n<=0) || (n>99)) cout<<"oshblka vvoda"; else
{
 
    fl=true;
    i=1;
    while ((fl) & (i<=n))
    {
        cout<<"vvedite "<<i<<" element\n";
        cin>>A[i];
        itoa(A[i],p,10);
        system("cls");
            if ((strlen(p)<2) || (strlen(p)>2)) fl=false; else i=i+1;
    }
    if (fl)
    {
    for(i=1;i<=n;i++)
{
itoa(A[i],p,10);
k[0]=p[0];
    A[i]=atoi(k);
k[0]=p[1];
    A[i]=atoi(k)+A[i];
 
}
fl=true;
while (fl)
{
    fl=false;
    for (i=1;i<=n-1;i++)
    {
        if (A[i]>A[i+1])
        {
          buff=A[i];
          A[i]=A[i+1];
          A[i+1]=buff;
          fl=true;
        }
    }
}
 
for (i=1;i<=n;i++)
    cout<<i<<" element: "<<A[i]<<"\n";
    }
    else
cout<<"element posledovatelbnostu dolgen bbltb dvyxzna4nblm 4islom";
}
 getch();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.01.2013, 00:20     Дана последовательность, элементы которой есть целые двузначные числа. Упорядочить последовательность по убыванию произведений цифр
Посмотрите здесь:

Упорядочить целые числа в строке по убыванию C++
C++ Задана строка, содержащая целые числа (максимум 15 чисел). Упорядочить целые числа в строке по убыванию.
Определить, есть ли в записи натурального числа n последовательность из k одинаковых цифр C++
Дано целое число k и последовательность цифр, в которой выписаны подряд все двузначные числа. Определить k-ю цифру C++
C++ Дана последовательность n натуральных чисел. Для каждого числа вычислить количество его цифр и сумму этих цифр. Вывести на экран каждое число, количес
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DU
1477 / 1053 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
26.01.2013, 01:27     Дана последовательность, элементы которой есть целые двузначные числа. Упорядочить последовательность по убыванию произведений цифр #2
быть может в 35 строке + на * поменять.
A[i]=atoi(k) * A[i]; что там на самом деле происходит - хз. но это место больше всего похоже на то, где циферки складываются
vua72
410 / 410 / 83
Регистрация: 28.11.2010
Сообщений: 1,158
26.01.2013, 02:20     Дана последовательность, элементы которой есть целые двузначные числа. Упорядочить последовательность по убыванию произведений цифр #3
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
#include <iostream>
#include <iomanip>
#include <cstdlib> //setw
inline int mul(int a) {
    return (a/10) * (a%10);
}
using namespace std;
 
int main() {
    int n = 0;
    cout << "n? ";
    cin >> n;
    int *p = new int[n];
    int i = -1;
    while (++i < n) {
        do {
            //cout << "p[" << i << "]? ";
            //cin >> p[i];
            p[i] = rand() % 100;
 
        } while (p[i] > 99 || p[i] < 10);
        cout << setw(4) << p[i];
    };
    cout << "\n Isxodnyi massiv\n";
    for (int i = 0; i < n; ++i)
        cout << setw(4) << p[i];
    // пузырек
    for (int i = 0, tmp = 0; i < n; ++i) {
        for (int j = 0; j < n - 1; ++j) {
 
            if (mul(p[j + 1]) > mul(p[j])) {
                tmp = p[j + 1];
                p[j + 1] = p[j];
                p[j] = tmp;
            }
        }
    }
    cout << "\n Posle sortirovki\n";
    for (int i = 0; i < n; ++i)
        cout << setw(4) << p[i];
delete []p;
return 0;
}
Добавлено через 2 минуты
Рюшечки - сами, там все для этого готово

Добавлено через 4 минуты
Перед delete[]p;
вствьте
C++
1
2
3
cout << "\n Proizvedeniya\n";
    for (int i = 0; i < n; ++i)
        cout << setw(4) << mul(p[i]);
Venom33
 Аватар для Venom33
19 / 19 / 0
Регистрация: 26.01.2013
Сообщений: 287
27.01.2013, 14:18  [ТС]     Дана последовательность, элементы которой есть целые двузначные числа. Упорядочить последовательность по убыванию произведений цифр #4
Спасибо большое!
Yandex
Объявления
27.01.2013, 14:18     Дана последовательность, элементы которой есть целые двузначные числа. Упорядочить последовательность по убыванию произведений цифр
Ответ Создать тему
Опции темы

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