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

С++ для начинающих

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

Ошибки в программе (поиск минимального значения) - C++

06.12.2010, 20:12. Просмотров 376. Ответов 8
Метки нет (Все метки)

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
#include <iostream>
#include <conio>
#include <stdio>
#include <math>
 
void main()
{
   int a,b,c,min,max;
   clrscr();
   printf("X=min(max(a,b),c)\nVvedite 3 celih chisla vvide: A,B,C\n");
   scanf("%d,%d,%d",&a,&b,&c); //забиваем значения в переменные
       printf(" %d", a);
       printf(", %d", b);
       printf(", %d", c);
   printf("\nX=min(max(%d", a);   //подставляем в формулу
   printf(",%d", b);
   printf("),%d", c);
   printf(")%d\n");
   //метод обхода
   if (a<b)
           max=b;
           else max=a;
   if (max<c)
           min=max;
           else min=c;
   printf ("X=%d\n", min);    // выводим ответ
   //метод развилки
   if (a<b)
   max=b;
           if (max<c)
           min=max;
           else min=c;
   else (max=a) if (max<c)
        min=max;
        else min=c;
 
   printf ("X=%d\n", min);    // выводим ответ
 
   getch();
}
Задание: написать программу находящую число по формуле X=min(max(a,b),c). Должен присутствовать метод развилки и метод обхода.
Вопросы:
1. После подставления в формулу после формулы выводится какое-то левое число
2. можно ли как нибудь упростить (не понял как выводить слово, затем переменную, а затем снова слова, не используя функцию printf() заново
C++
1
2
3
4
   printf("\nX=min(max(%d", a);
   printf(",%d", b);
   printf("),%d", c);
   printf(")%d\n");
?
3. Метод развилки совсем не получился, что не так?
Заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.12.2010, 20:12
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибки в программе (поиск минимального значения) (C++):

Поиск минимального значения - C++
Здравствуйте подскажите пожалуйста, как сделать поиск минимального значения. Дано 5 формул типа z=8*x+y*2. Нужно вывести наименьший...

Поиск ошибки в программе. - C++
Требуется решить следующее уравнение 5*x+\sqrt{\left| cos(x)\right|}-\frac{4}{3}=0 О_о методом простых итераций (x=0,0668904). Вот код //...

Поиск максимального и минимального значения в матрице - C++
Подскажите как найти минимальное и максимальное значение в матрице 20 на 20 (я так понял рендомных чисел )но при условии что эти числа не...

Своя структура и поиск минимального значения - C++
Добрый день! Есть своя структура. Заполняю через массив. Делаю в Visual Studio 2015. Вместо списка ошибок и предупреждений, Visual...

Поиск минимального значения с помощью тернарного оператора - C++
А кто подскажет,как найти минимальное значение с помощью тернарного оператора? f(3,5) . Только не сравнение,а именно поиск

Поиск значения минимального листа дерева/ошибка - C++
всем привет, такая проблема: в чем ошибка поиска значения минимального листа? #include &lt;tchar.h&gt; #include &lt;stdio.h&gt; #include...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Darky
Быдлокодер
507 / 294 / 45
Регистрация: 22.11.2009
Сообщений: 892
Завершенные тесты: 1
06.12.2010, 20:24 #2
C
1
printf("\nX=min(max(%d,%d),%d)\n", a,b,c);
Добавлено через 2 минуты
C
1
2
3
4
5
6
7
8
   if (a<b)
   max=b;
           if (max<c)
           min=max;
           else min=c;
   else (max=a) if (max<c)
        min=max;
        else min=c;
->
C
1
2
3
4
5
6
7
8
9
10
11
   if (a<b)
   {
   max=b;
           if (max<c)
           min=max;
           else min=c;
   }
   else (max=a);
     if (max<c)
        min=max;
        else min=c;
да и вообще что-то налеплено всякой гадости, грязно
SergProgC++
Эксперт GPSS
315 / 317 / 59
Регистрация: 02.07.2010
Сообщений: 1,361
06.12.2010, 20:27 #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.h>
#include <math.h>
 
void main()
{
   int a,b,c,min,max;
   cout<<"X=min(max(a,b),c)\nVvedite 3 celih chisla cherez probel vvide: A,B,C\n";
   cin>>a>>b>>c; //забиваем значения в переменные
   //метод обхода
   if (a<b)
   {
           max=b;
   }
   else {max=a;}
   if (max<c)
   {
           min=max;
   }
   else {min=c;}
   cout<<"otvet metoda obxoda:" <<min;  // выводим ответ
   //метод развилки
if (a<b)
{
   max=b;
 
    if (max<c)
{
   min=max;
}
    else {min=c;}
}
else {max=a;} 
if (max<c)
{
min=max;
}
else {min=c;}
 
  cout<<"otvet metoda razvilki:" <<min;     // выводим ответ
 
cin.get();
}
}
вот это работать должно
Darky
Быдлокодер
507 / 294 / 45
Регистрация: 22.11.2009
Сообщений: 892
Завершенные тесты: 1
06.12.2010, 20:35 #4
это тоже
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <stdlib.h>
  #include <algorithm>
int main()
{
  int A[2],B[2];
  for (int i=0;i<2;i++)
    cin>>A[i];
    cin>>B[0];
    B[1]=*std::max_element(A,A+2);
    int min=*std::min_element(B,B+2);
      cout<<"\n"<<min;
}
Vladimi
0 / 0 / 0
Регистрация: 06.12.2010
Сообщений: 5
06.12.2010, 20:42  [ТС] #5
Спасибо, по примеру Darky все заработало.
SergProgC++, надо было использовать си, а не си++ (кнопочки перепутал), но все равно спасибо!

Может кому понадобится:
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
#include <iostream>
#include <conio>
#include <stdio>
#include <math>
 
void main()
{
   int a,b,c,min,max;
   clrscr();
   printf("X=min(max(a,b),c)\nVvedite 3 celih chisla vvide: A,B,C\n");
   scanf("%d,%d,%d",&a,&b,&c); //забиваем значения в переменные
   printf("%d,%d,%d\n",a,b,c); //проверяем забились ли значения
   printf("X=min(max(%d,%d),%d)\n", a,b,c);   //вводим в формулу
   //метод обхода
   if (a<b)
           max=b;
           else max=a;
   if (max<c)
           min=max;
           else min=c;
   printf ("Metod obhoda: X=%d\n", min);    // выводим ответ
   //развилка
   if (a<b)
   {
   max=b;
           if (max<c)
           min=max;
           else min=c;
   }
   else (max=a);
     if (max<c)
     min=max;
     else min=c;
   printf ("Metod razvilki: X=%d\n", min);    // выводим ответ
 
   getch();
}
Darky
Быдлокодер
507 / 294 / 45
Регистрация: 22.11.2009
Сообщений: 892
Завершенные тесты: 1
06.12.2010, 20:44 #6
Vladimi, а зачем проверять, забились ли значения? (12 строка)
Vladimi
0 / 0 / 0
Регистрация: 06.12.2010
Сообщений: 5
06.12.2010, 20:46  [ТС] #7
Darky, для себя писал, долго не мог понять почему не забывались.
Darky
Быдлокодер
507 / 294 / 45
Регистрация: 22.11.2009
Сообщений: 892
Завершенные тесты: 1
06.12.2010, 20:55 #8
C
1
scanf("%d,%d,%d",&a,&b,&c);
такое не каждый компилятор схавает. я бы сделал по отдельности каждый сканф.
Vladimi
0 / 0 / 0
Регистрация: 06.12.2010
Сообщений: 5
06.12.2010, 21:11  [ТС] #9
Darky,
Я пробовал по отдельности, у меня не получалось в книге-самоучителе нашел данный вариант и использовал его, только там было
C
1
scanf("%lf,%lf,%lf",&d1,&d2, &d3)
, что я путем проб и ошибок преобразовал в то, что получилось у меня.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.12.2010, 21:11
Привет! Вот еще темы с ответами:

Массивы, вложенные циклы и поиск максимального и минимального значения - C++
Товарищи. Нужна помощь. Срочно. Есть 2 задачи и их надо срочно сделать..Не могу сделать. 1. Элементы массива a сформированы следущим...

Ошибки в программе - C++
Мне необходимо реализовать алгоритм сортировки каскадным слиянием со специальным распределением. Я написал программу: #include...

Ошибки в программе - C++
Подскажите пожалуйста как сделать так чтобы после ошибочного ввода пользователем символа вместо числа программа бы не завершалась а...

Ошибки в программе - C++
rational.h #define _Rational_h_ #include &lt;iostream&gt; using namespace std; int nod(int p, int q) { if (p &lt; 0) p = -p; ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
06.12.2010, 21:11
Ответ Создать тему
Опции темы

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