Форум программистов, компьютерный форум, киберфорум
Наши страницы

C для начинающих

Войти
Регистрация
Восстановить пароль
 
Ch1lly
0 / 0 / 0
Регистрация: 22.10.2014
Сообщений: 23
#1

Вводится число N, из его цифр сформировать максимальное число - C (СИ)

22.10.2014, 12:04. Просмотров 430. Ответов 7
Метки нет (Все метки)

Суть в чем: вводится целое число, например 53941, используя эти цифры, надо создать максимальное число, т.е. 95431 (расставить цифры в порядке убывания)
Мне сказали, что можно выполнить с помощью 2х циклов, а именно цикл в цикле
Думаю первый цикл это отсев/определение полседних цифр, а что будет во втромо? Как сформировать их в правильном порядке?
Спасибо за помощь
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.10.2014, 12:04
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Вводится число N, из его цифр сформировать максимальное число (C (СИ)):

Из цифр сформировать число - C (СИ)
Есть функция, которая удаляет повторяющиеся цифры в числах: сначала я разбиваю числа на цифры, удаляю повторы, а потом мне нужно обратно...

Из входного потока вводится произвольное число строк. Для каждой строки сформировать новую строку, поместив в нее группы символов - C (СИ)
Доброй ночи! Нужна помощь в написании программы на си, сам, к сожалению, слабо разбираюсь в теме. Из входного потока вводится...

Определить максимальное число в первой половине массива и минимальное число во второй - C (СИ)
Помогите написать программу пожалуйста!!Вот условие: заполнить массив из N ячеек случайными целыми числами от 1 до 24.Определить...

Определить максимальное число в первой половине массива и минимальное число во второй - C (СИ)
Помогите написать программу пожалуйста!!Вот условие: заполнить массив из N ячеек случайными целыми числами от 1 до 24.Определить...

Найти максимальное число и поменять его местами с четверым от конца элементом массива - C (СИ)
Помогите пожалуйста Найти максимальное число и поменять его местами с четверым от конца элементом массива Заранее спасибо

Сформировать массив восьмеричных цифр числа А (десятичное число). Отсортировать по возрастанию - C (СИ)
Дано целое десятичное число А. Сформировать массив восьмеричных цифр числа А. Отсортировать массив цифр по возрастанию. Вывести массив цифр...

7
Boleon
Guardian of Asgaard
372 / 315 / 106
Регистрация: 11.11.2013
Сообщений: 1,046
Завершенные тесты: 1
22.10.2014, 12:18 #2
если цикл в цикле, то такой способ решается с помощью массива.
0
Ch1lly
0 / 0 / 0
Регистрация: 22.10.2014
Сообщений: 23
22.10.2014, 12:19  [ТС] #3
Сказали, что без массива все получится
0
Байт
Эксперт C
17714 / 11735 / 1871
Регистрация: 24.12.2010
Сообщений: 23,532
22.10.2014, 13:15 #4
C
1
2
3
4
5
6
7
8
int cif[10], i, j, n, m;
scanf("%d", &n);
for(i=0; i<10;i++) cif[i]=0;
for(;n;n/=10)  cif[n%10]++;
for(i=9, m=0; i>=0; i--) {
  for(j=0; j<cif[i];j++) m = 10*m + i;
}
printf("%d\n", m);
Элементы стандартного оформления добавишь сам
2
Boleon
Guardian of Asgaard
372 / 315 / 106
Регистрация: 11.11.2013
Сообщений: 1,046
Завершенные тесты: 1
22.10.2014, 13:44 #5
Можно считерить
п.с.
работает со стандартом С99

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
#include <stdio.h>
 
int main() {
    int number, max;
    int size = 1;
    int index = 0;
    int array[size];
    
    for ( ; scanf("%1d", &number) == 1; ) {
        array[index] = number;
        size += 1;
        index += 1;
    }
    
    for ( int i = 0; i < index; i++ ) {
        max = array[i];
        for ( int j = i; j < index; j++ ) {
            if ( max < array[j]) {
                int temp = array[i];
 
                max = array[j];
                array[i] = array[j];
                array[j] = temp;
            }
        }
        printf("%d", max);
    }
    
    return 0;
}
0
Catstail
Модератор
23498 / 11606 / 1893
Регистрация: 12.02.2012
Сообщений: 18,948
22.10.2014, 15:46 #6
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
#include <stdio.h>
 
using namespace std;
 
int GetDig(int n, int d)
{
    int q=0,r=0,k;
 
    n=abs(n);
    
    if (n < 10) return (n==d)?-n:n;
    
    while (n)
    {
        k=n%10;
        if (k==d)
            if (q)
               r=r*10+k;
            else
               q=1;
        else
            r=r*10+k;
        n=n/10;
     }
     return (q)?-r:r;
}                             
 
int main(int argc, char *argv[])
{
    int i,n,r=0,k;
    printf("n=");
    scanf("%d",&n);
    k=n;
    for (i=9; i>=0; i--)
      while (1)
      {
          k=GetDig(k,i);
          
          if (k<0) 
             r=r*10+i;
          else
             break;
             
          if (abs(k) < 10) break;   
             
      }   
 
    printf("%d\n",r);             
    
    system("PAUSE");
    return EXIT_SUCCESS;
}
Добавлено через 56 секунд
Байт, но есть массив... А у меня нет.
1
Байт
Эксперт C
17714 / 11735 / 1871
Регистрация: 24.12.2010
Сообщений: 23,532
22.10.2014, 19:21 #7
Цитата Сообщение от Catstail Посмотреть сообщение
но есть массив...
Вы знаете, меня жутко коробит от всех этих заданий с ограничениями. "Не используя циклов", "не используя массивов", "Не используя goto"... Имхо, это вовсе не способствует изучению языка, и не повышает уровня студента в программировании. Так, некоторая эквилибристика, ничего общего не имеющая с мастерством.
Я вот, например, не очень хорошо разгадываю ребусы, кроссворды и судоку. А в борьбе с алмьгейзером хватает и профессиональной деятельности...
1
Catstail
Модератор
23498 / 11606 / 1893
Регистрация: 12.02.2012
Сообщений: 18,948
22.10.2014, 21:25 #8
Цитата Сообщение от Байт Посмотреть сообщение
Вы знаете, меня жутко коробит от всех этих заданий с ограничениями. "Не используя циклов", "не используя массивов", "Не используя goto"..
- согласен...
0
22.10.2014, 21:25
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.10.2014, 21:25
Привет! Вот еще темы с ответами:

Дано натуральное число n. Вычислить сумму его цифр - C (СИ)
Дано натуральное число n. Вычислить сумму его цифр. Задача на итерационный цикл.

Дано натуральное число N Вычислите сумму его цифр - C (СИ)
3. Дано натуральное число N. Вычислите сумму его цифр.

Задано целое число найти наименьшую из его цифр - C (СИ)
Задано целое число найти наименьшую из его цифр #include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;iostream&gt; ...

Ввести целое число и найти сумму его цифр - C (СИ)
Ввести целое число и найти сумму его цифр Совсем запуталась,помогите!


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru