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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.10.2011, 12:20   #1
Sylar9
Форумчанин
 
Регистрация: 22.10.2011
Сообщений: 252
Вопрос Небольшая задчка по программированию не могу понять как решить

Напишите программу, предлагающую пользователю ввести три целых числа, а затем вывести их в порядке возрастания, разделяя запятыми. Например, если пользователь вводит числа 10 4 6, то программа должна вывести на экран числа 4, 6, 10. Если два числа совпадают, то они должны быть упорядочены одновре¬менно. Например, если пользователь вводит числа 4 5 4, то программа должна вывести на экран числа 4,4, 5.
Sylar9 вне форума Ответить с цитированием
Старый 22.10.2011, 13:02   #2
SteAlzzer
Пользователь
 
Аватар для SteAlzzer
 
Регистрация: 11.10.2011
Сообщений: 60
По умолчанию

ну и что сложного?
Создаете массив int numbers[3];
затем пихаете в него введенные числа
while(i++ < 3)
scanf("%d", numbers[i]);

затем реализуете любую понравившуюся сотрировку (см. вики)
и выводите на экран
while(i++ < 3)
printf("%d,",numbers[i]);
SteAlzzer вне форума Ответить с цитированием
Старый 22.10.2011, 13:17   #3
Sylar9
Форумчанин
 
Регистрация: 22.10.2011
Сообщений: 252
Вопрос

Цитата:
Сообщение от SteAlzzer Посмотреть сообщение
ну и что сложного?
Создаете массив int numbers[3];
затем пихаете в него введенные числа
while(i++ < 3)
scanf("%d", numbers[i]);

затем реализуете любую понравившуюся сотрировку (см. вики)
и выводите на экран
while(i++ < 3)
printf("%d,",numbers[i]);
Интересная задача из учебника Бьярне Страуструп Программирование: принципы и практика использования C++, исправленное издание
Я там только прошел перемены в вывод и оператор if и все а уже такие задачи

Все решил:
Код:
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
  int m[3];
  int tmp;
  cout<<"Введите три числа"<<endl;
  for (int i=0;i<3;i++)
{
        cin>>m[i];
for (int j=0; j<2; j++)
      if(m[j]>m[j+1])
      {
           tmp=m[j];
           m[j]=m[j+1];
           m[j+1]=tmp;
      
      }

}
for (int x=0; x<3; x++)
{
  cout<<m[x]<<endl;
}

    getch();
	return 0;
}

Последний раз редактировалось Stilet; 16.04.2012 в 18:22.
Sylar9 вне форума Ответить с цитированием
Старый 22.10.2011, 14:17   #4
SteAlzzer
Пользователь
 
Аватар для SteAlzzer
 
Регистрация: 11.10.2011
Сообщений: 60
По умолчанию

Цитата:
Сообщение от Sylar9 Посмотреть сообщение
Интересная задача из учебника Бьярне Страуструп Программирование: принципы и практика использования C++, исправленное издание
Я там только прошел перемены в вывод и оператор if и все а уже такие задачи
Признаюсь, Страуструпа я не читал) Учился по Шилдту. Отличный учебник и справочник, советую.

Цитата:
Все решил:
...
И работает? А то, навскидку, этот кусок вызывает подозрения..
Цитата:
Код:
for (int i=0;i<3;i++)
{
        cin>>m[i];
for (int j=0; j<2; j++)
      if(m[j]>m[j+1])
      {
           tmp=m[j];
           m[j]=m[j+1];
           m[j+1]=tmp;
      
      }

}
SteAlzzer вне форума Ответить с цитированием
Старый 22.10.2011, 14:58   #5
Sylar9
Форумчанин
 
Регистрация: 22.10.2011
Сообщений: 252
Счастье

Цитата:
Сообщение от SteAlzzer Посмотреть сообщение
Признаюсь, Страуструпа я не читал) Учился по Шилдту. Отличный учебник и справочник, советую.


И работает? А то, навскидку, этот кусок вызывает подозрения..
да!!!!
Код:
for (int i=0;i<3;i++)
{
        cin>>m[i];
for (int j=0; j<2; j++)
      if(m[j]>m[j+1])
      {
           tmp=m[j];
           m[j]=m[j+1];
           m[j+1]=tmp;
      
      }

}
-это метод сортировки (пузырьковой)
Sylar9 вне форума Ответить с цитированием
Старый 22.10.2011, 15:17   #6
SteAlzzer
Пользователь
 
Аватар для SteAlzzer
 
Регистрация: 11.10.2011
Сообщений: 60
По умолчанию

Ну просто вы вначале вводите всего один символ и сразу начинаете сортировку. Ввели второй, еще раз отсортировали.
Не проще бы было сразу ввести три числа, а потом их отсортировать?
SteAlzzer вне форума Ответить с цитированием
Старый 03.01.2012, 18:16   #7
Andruxa-1
Новичок
Джуниор
 
Регистрация: 03.01.2012
Сообщений: 1
По умолчанию

массивы это все хорошо, но в этой главе они еще не вводились, так что нужно решать задачу на простых переменных...
Andruxa-1 вне форума Ответить с цитированием
Старый 16.04.2012, 15:55   #8
boec223
Новичок
Джуниор
 
Регистрация: 16.04.2012
Сообщений: 2
По умолчанию

Тоже с этой задачей столкнулся.
Решил так.
Громоздко конечно,и трудно читаемо,но все же просто и работает.

PHP код:
#include <iostream>
    
using namespace std;

int main()
{
    
setlocaleLC_ALL,"RUSSIAN");
    
int naib,naim2,naim1;
    
char z1,z2;
    
cout << "Введите три произвольных числа через запятую:";
    
cin >> naib >> z1 >> naim2 >> z2 >> naim1;//Ввести переменные через запятые.

    
if(naib naim2)
        if(
naib naim1)
            if(
naim2 naim1)
                
cout << naim1 << "," <<  naim2 << "," << naib << endl;
                                                        
                                                         if(
naib naim2)
                                                           if(
naib naim1)
                                                               if(
naim2 == naim1)            
                                                                   
cout << naim1 << "," << naim2 << "," << naib << endl;
    
    if(
naib naim2)
        if(
naib naim1)
            if(
naim1 naim2)
                
cout << naim2 <<"," << naim1 <<"," << naib << endl;
                                                            
    if(
naim2 naib)
        if(
naim2 naim1)
            if(
naib naim1)
                
cout << naim1 <<"," << naib <<"," << naim2 << endl;
                                                         
                                                        if(
naim2 naib)
                                                            if(
naim2 naim1)
                                                               if(
naib == naim1)
                                                                  
cout << naim1 <<"," << naib <<"," << naim2 << endl;
    
    if(
naim2 naib)
        if(
naim2 naim1)
            if(
naim1 naib)
                
cout << naib << "," << naim1 << "," << naim2 << endl;
                                                            
    if(
naim1 naib)
        if(
naim1 naim2)
            if(
naib naim2)
                
cout << naim2 << "," << naib << "," << naim1 << endl;
                                                            
                                                            if(
naim1 naib)
                                                              if(
naim1 naim2)
                                                                 if(
naib == naim2)
                                                                    
cout << naim2 << "," << naib <<"," << naim1 << endl;
    
    if(
naim1 naib)
        if(
naim1 naim2)
            if(
naim2 naib)
                
cout << naib << "," << naim2 << "," << naim1 << endl;
   
                                                                        

boec223 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
немогу понять как решить rostik123 Общие вопросы C/C++ 0 19.10.2011 20:54
НЕ МОГУ ПОНЯТЬ КАК ДОДЕЛАТЬ 6ot777 Паскаль, Turbo Pascal, PascalABC.NET 3 26.05.2011 22:01
Не могу понять, как работает тест? fs444 PHP 8 16.02.2011 01:20
Не могу понять как исправить ошибки Lisёноk Помощь студентам 6 29.09.2010 13:49
Не могу понять как решить задачи. Нужна помощь Студент заочник Помощь студентам 9 30.12.2008 23:49