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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.04.2013, 15:52   #1
romasss
Новичок
Джуниор
 
Регистрация: 03.04.2013
Сообщений: 2
Вопрос найдите ошибку:3

Пожалуйста, помогите!
Начал учить С++, решил сделать программу для вода трёх цифр и вывода их по порядку увеличения.
Результат не доставил.
PHP код:
#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
#include <cmath>
using namespace std;
inline void keep_window_open() {
    
char ch;
    
cin>>ch;}
int main() {
    
int a;
    
int b;
    
int c;
    
cout<<"enter three numbers \n";
    
cin>>a>>b>>c;
    
int a1=a;
    
int b1=b;
    
int c1=c;
    for (
int i=0i<3i=i+1) {
        if(
a1<b1,a1<c1) {
            
cout<<a<<",";
            
a1=b+c;
        }
        else if (
b1<a1,b1<c1) {
            
cout<<b<<",";
            
b1=a+c;
        }
        else  if (
c1<a1,c1<b1) {
            
cout<<c<<",";
            
c1=a+b;
        }
    }
    
cout<<endl;
    
system("pause");
    return 
0;} 
romasss вне форума Ответить с цитированием
Старый 03.04.2013, 16:29   #2
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Код:
a1=b+c;
А з-зачем Вы сумму ищете?
Можно так:
Код:
int numbers[3];
cin >> numbers[0] >> numbers[1] >> numbers[2];

for(int i=0; i<3; ++i){
  //Ищем минимальное из чисел от i-го до 2-го:
  int minIndex = i;
  for(int j=i+1; j<3; ++j){
    if(numbers[j] < numbers[minIndex]) minIndex = j;
  }
  //Меняем местами i-е число и минимальное:
  int temp = numbers[i];
  numbers[i] = numbers[minIndex];
  numbers[minIndex] = temp;
}
//Всё, массив numbers отсортирован по возрастанию
Обратите внимание, что этим способом можно сортировать массив любого размера. Для трёх чисел вместо этого можно написать вот такого крокодила:
Код:
    int a;
    int b;
    int c;
    cout<<"enter three numbers \n";
    cin>>a>>b>>c;
    int a1, b1, c1; 
    if(a>b){
      if(b>c){
        a1 = c; b1 = b; c1 =a;
      } else {
        if(a>c){
          a1 = b; b1 = c; c1 = a;
        } else {
          a1 = b; b1 = a; c1 = c;
        }
      }
    } else {
      //Можете попробовать написать сами
    }
P.S. Имейте в виду: оператор , - это не "и", это последовательное вычисление. if(a1<b1,a1<c1) означает "вычислить выражение a1<b1, потом вычислить a1<c1, потом результат второго выражения использовать для перехода по if". "Если a1<b1 и a1<c1" пишется так: if(a1<b1 && a1<c1).

Последний раз редактировалось Abstraction; 03.04.2013 в 16:41.
Abstraction вне форума Ответить с цитированием
Старый 03.04.2013, 19:07   #3
romasss
Новичок
Джуниор
 
Регистрация: 03.04.2013
Сообщений: 2
По умолчанию

Спасибо!!!
romasss вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найдите ошибку Tatyana64 Помощь студентам 12 06.11.2012 12:35
Найдите ошибку #Sharp# Паскаль, Turbo Pascal, PascalABC.NET 7 23.12.2010 14:35
Найдите ошибку *natali* Помощь студентам 3 08.11.2009 17:30
Найдите ошибку St1fler92 Помощь студентам 4 26.05.2009 15:23