Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.11.2017, 23:39   #1
Reed21
Пользователь
 
Регистрация: 08.11.2017
Сообщений: 11
По умолчанию [C++] Дано четырёхзначное число, из его цифр нужно создать 2 числа: минимальное и максимальное

Дано четырёхзначное число, с его цифр нужно создать 2 числа: минимальное и максимальное четырёхзначные числа и вывести их.
Мой вариант решения:


Код:
#include <bits/stdc++.h>
#include <algorithm>
using namespace std;
int main ()
{int n;
cin>>n;
int i=0;
vector <int> a;
a.resize (4);
while (n>   0)
{a[i]=n%10; n=n/10;i++;}
sort (a.begin(),a.end());
for (int i=0; i<4; i++)
     cout<<a[i];
cout<<" ";
sort(a.begin(),a.end(), greater<int>() );
for (int i=0; i<4; i++)
    cout<<a[i];
    return 0;}
Проходит только 50% тестов.

_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор

Убрал с вывода минимального ноль, но всё равно половину тестов не проходит, в чём может быть ошибка?
Код:
#include <bits/stdc++.h>
#include <algorithm>
using namespace std;
int main ()
{int n;
cin>>n;
int i=0;
vector <int> a(4);

while (n>   0)
{a[i]=n%10; n=n/10;i++;}
sort (a.begin(),a.end());
for (int i=0; i<4; i++)
 if(a[i]==0){a[i]=a[i+1];}
     else cout<<a[i];
cout<<" ";
sort(a.begin(),a.end(), greater<int>() );
for (int i=0; i<4; i++)
    cout<<a[i];
    return 0;}

Последний раз редактировалось Reed21; 09.11.2017 в 12:40.
Reed21 вне форума Ответить с цитированием
Старый 09.11.2017, 06:22   #2
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,772
По умолчанию

Не спешите выводить. Вам всего лишь надо прямо в векторе поменять местами начальный нуль с первым ненулевым элементом.

А в чём глубинный смысл
Цитата:
Сообщение от Reed21 Посмотреть сообщение
Код:
vector <int> a;
a.resize (4);
Почему бы сразу не
Код:
vector<int> a(4);
Black Fregat вне форума Ответить с цитированием
Старый 09.11.2017, 11:03   #3
Мановар
Пользователь
 
Регистрация: 13.11.2016
Сообщений: 84
По умолчанию

Код:
#include <iostream>
#include <string>
#include <algorithm>

int main()
{
	std::string str;
	std::cin >> str;
	std::sort(str.begin(), str.end());
	std::cout << " mix = " << str << std::endl;
	std::reverse(str.begin(), str.end());
	std::cout << " max = " << str << std::endl;
    system ("pause");
}
Мановар вне форума Ответить с цитированием
Старый 09.11.2017, 11:10   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
Мановар
если есть 0 в числе, то для min так не пойдет
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 09.11.2017, 12:42   #5
Мановар
Пользователь
 
Регистрация: 13.11.2016
Сообщений: 84
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
то для min так не пойдет
Я согласен, но с 0 надо что то сделать (просто удалить или перенести куда то и т.д.), но из задания это не очень понятно, а самому додумывать и делать не нужную работу не очень хочется.
Мановар вне форума Ответить с цитированием
Старый 09.11.2017, 12:45   #6
Reed21
Пользователь
 
Регистрация: 08.11.2017
Сообщений: 11
По умолчанию

Но проверку всё же не проходит
Reed21 вне форума Ответить с цитированием
Старый 09.11.2017, 12:54   #7
Мановар
Пользователь
 
Регистрация: 13.11.2016
Сообщений: 84
По умолчанию

Цитата:
Сообщение от Reed21 Посмотреть сообщение
Но проверку всё же не проходит
Что бы прошло проверку надо дословно знать все задание, а желательно и скинуть на него ссылку. Скорее всего ни вектора ни строки не нужны. Неизвестно на счет ввода отрицательных чисел, может в тестах они фигурируют. У нас получается гадание на кофейной гуще.
Мановар вне форума Ответить с цитированием
Старый 09.11.2017, 13:06   #8
Reed21
Пользователь
 
Регистрация: 08.11.2017
Сообщений: 11
По умолчанию

Вот условие:
"Новый модуль"
Новый модуль получает на вход четырехзначный число и генерирует из цифр этого числа минимально возможное четырехзначный число и максимально возможное четырехзначный число.
К сожалению, в последнее время, модуль начал давать сбой и выводить непонятно что. Помогите восстановить работу модуля - напишите программу, которая моделирует работу модуля.
Входные данные:
В первой строке задано одно четырехзначный число.
Выходные данные:
Выведите в первой строке два числа - меньше четырехзначный число и больше четырехзначный число, которые можно получить из цифр данного числа. Числа разделяйте одним пробелом.
Reed21 вне форума Ответить с цитированием
Старый 09.11.2017, 14:26   #9
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,772
По умолчанию

Цитата:
Сообщение от Мановар Посмотреть сообщение
но из задания это не очень понятно
Из задания это как раз очень понятно. Вы что, посты набиваете?
Цитата:
Сообщение от Reed21 Посмотреть сообщение
Но проверку всё же не проходит
Какой вариант не проходит проверку? Со свопом первого нуля с первым ненулём?
Black Fregat вне форума Ответить с цитированием
Старый 09.11.2017, 14:53   #10
Reed21
Пользователь
 
Регистрация: 08.11.2017
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Black Fregat Посмотреть сообщение
Какой вариант не проходит проверку? Со свопом первого нуля с первым ненулём?
не проходит ни один вариант.
Reed21 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Delphi] С клавиатуры вводятся целые положительные числа.Найти максимальное и минимальное число и их частное. neznayu kto Помощь студентам 2 23.04.2017 15:22
Рекурсия с++. Дано натуральное число N . Посчитать суму его цифр. marenko.lilia Помощь студентам 2 26.05.2014 20:33
Дано трехзначное число. Если в сумме его цифр присутствует число 7,то число записать в зеркальном виде ( Паскаль ) Эля777 Помощь студентам 5 22.04.2013 23:23
Дано натуральное число n. Определить, сколько парных цифр в числе n. Чему равна сумма нечетных его цифр? pahanzona Microsoft Office Excel 4 27.02.2011 15:46
дано трехзначное число.вывести число,полученное при перестановки цифр десятков и сотен исходдного числа. Kenny_mackormik Помощь студентам 7 12.03.2009 15:18