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

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

Войти
Регистрация
Восстановить пароль
 
Владиславик
-131 / 0 / 0
Регистрация: 28.10.2013
Сообщений: 139
#1

Программа некорректно считает максимальную и минимальную стоимость блюда - C++

01.11.2013, 22:59. Просмотров 268. Ответов 5
Метки нет (Все метки)

Пожалуйста, помогите поправить программу. Программа не корректно считает максимальную и минимальную стоимость блюда, а так же максимальные калории. ПОМОГИТЕ!
Вот код программы.
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
#include "stdafx.h"
#include <iostream>
 
struct Dish
{
     float cash;
     unsigned int cal;
};
 
float getMaxCash(Dish ** d, unsigned int size1, unsigned int size2)
{
   float max=0.0f;
   float sum=0.0f;
   float * tmp1 = new float[size1];
   
   for(int i=0; i<size1; ++i)
       for(int j=0; j<size2; ++j)
         tmp1[i]+=d[i][j].cash;
         
    for(int i=0; i<size1; ++i)
       if(max<tmp1[i])
           max=tmp1[i];
           
   delete [] tmp1;   
   tmp1 = NULL;         
   return max;
}
 
float getMinCash(Dish ** d, unsigned int size1, unsigned int size2)
{
   float min=0.0f;
   float sum=0.0f;
   float * tmp2 = new float[size1];
   
   for(int i=0; i<size1; ++i)
       for(int j=0; j<size2; ++j)
         tmp2[i]+=d[i][j].cash;
         
     min=tmp2[0];
    for(int i=0; i<size1; ++i)
       if(min>tmp2[i])
           min=tmp2[i];
           
   delete [] tmp2; 
   tmp2 = NULL;           
   return min;
}
 
unsigned int getMaxCal(Dish ** d, unsigned int size1, unsigned int size2)
 
{
   unsigned int max=0;
   unsigned int sum=0;
   unsigned int * tmp3 = new unsigned int[size1];
    
    for(int i=0; i<size1; ++i)
       for(int j=0; j<size2; ++j)
         tmp3[i]+=d[i][j].cal;
     
         
    for(int i=0; i<size1; ++i)
       if(max<tmp3[i])
           max=tmp3[i];
           
   delete [] tmp3;   
   tmp3 = NULL;         
   return max;
}
 
int main()
{
  unsigned int count_break=0;
  unsigned int count_dishs=0;
  std::cout << "Enter counted breakfast :"; std::cin >> count_break;
  std::cout << "Enter counted dishs     :"; std::cin >> count_dishs;
  
  Dish ** dishs = new Dish*[count_break];
  for(int i=0; i<count_break; ++i)
        dishs[i]=new Dish[count_dishs];
        
  for(int i=0; i<count_break; ++i)
  {
    std::cout << "Enter breakfast # " << i+1 << std::endl; 
      for(int j=0; j<count_dishs; ++j)
      {
         std::cout << "Enter cash :"; std::cin >> dishs[i][j].cash; std::cout << std::endl;
         std::cout << "Enter cal   :"; std::cin >> dishs[i][j].cal; std::cout << std::endl;
      }
}
  
  std::cout << "Max cost = " << getMaxCash(dishs, count_break, count_dishs) << std::endl;
  std::cout << "Min cost = " << getMinCash(dishs, count_break, count_dishs) << std::endl;
  std::cout << "Max calories  = " << getMaxCal(dishs, count_break, count_dishs) << std::endl;
 
  
 for(int i=0; i<count_break; ++i)
      delete dishs[i];
      delete [] dishs;
 
system("PAUSE");
return 0;
}
Это скриншот выполнения. На нем показано не корректность выполнения программы. ПОЖАЛУЙСТА, помогите, не оставляйте в беде. Буду благодарен.
Программа некорректно считает максимальную и минимальную стоимость блюда
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.11.2013, 22:59
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Программа некорректно считает максимальную и минимальную стоимость блюда (C++):

Определить максимальную и минимальную цифру числа - C++
Помогите решить задачи через цикл do _ while: 5) Дано натуральное число: а) Определить его максимальную цифру; б) Определить...

Массивы: определить максимальную и минимальную температуры - C++
Задача такая: При помощи массивов нужно определить максимальную , минимальную температуры за все 24 часа(ежечасно) так уже указать время, в...

Описать структуру Menu, содержащую поля: название блюда, вес блюда, количество калорий, цена - C++
Описать структуру Menu, содержащую следующие поля: название блюда, вес блюда, количество калорий, цена. Вывести на экран информацию обо...

Найти максимальную, минимальную и среднюю температуру воздуха - C++
Массив а1,...,a24 содержит данные измерения температуры воздуха в течение дня. Найти максимальную, минимальную и среднюю температуру...

Найти минимальную и максимальную цифру в числе (динамические массивы) - C++
Здравствуйте, господа знатоки. Это мой первый опыт в использовании динамических массивов. Мне кажется, что код программы не является...

В четырехзначном числе определить сумму цифр, максимальную и минимальную цифры - C++
нужно вести четырех значное число и определить : 1.Сумму цифр 2.найти максимальное и минимальное цифр 3. является ли число...

5
MrGluck
Модератор
Эксперт CЭксперт С++
7491 / 4606 / 692
Регистрация: 29.11.2010
Сообщений: 12,592
01.11.2013, 23:04 #2
Цитата Сообщение от Владиславик Посмотреть сообщение
float * tmp1 = new float[size1];
Цитата Сообщение от Владиславик Посмотреть сообщение
for(int i=0; i<size1; ++i)
* * * *for(int j=0; j<size2; ++j)
* * * * *tmp1[i]+=d[i][j].cash;
вы tmp1 не инициализировали, в нем изначально содержится мусор, надо занулять.
0
Владиславик
-131 / 0 / 0
Регистрация: 28.10.2013
Сообщений: 139
01.11.2013, 23:06  [ТС] #3
MrGluck, пожалуйста, помогите, я не могу разобраться. Все перепробовал, помогите.
0
MrGluck
Модератор
Эксперт CЭксперт С++
7491 / 4606 / 692
Регистрация: 29.11.2010
Сообщений: 12,592
01.11.2013, 23:08 #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
float getMaxCash(Dish ** d, unsigned int size1, unsigned int size2)
{
   float max=0.0f;
   float sum=0.0f;
   float * tmp1 = new float[size1];
   
   for(int i=0; i<size1; ++i)
   {
       tmp1[i] = 0;
       for(int j=0; j<size2; ++j)
         tmp1[i]+=d[i][j].cash;
    }
    
    max = tmp1[i];     
    for(int i=1; i<size1; ++i)
       if(max<tmp1[i])
           max=tmp1[i];
           
   delete [] tmp1;   
   tmp1 = NULL;         
   return max;
}
Пробуйте по аналогии
0
programina
1914 / 599 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
01.11.2013, 23:10 #5
Цитата Сообщение от Владиславик Посмотреть сообщение
MrGluck, пожалуйста, помогите, я не могу разобраться. Все перепробовал, помогите.
А вы не пробовали разобраться в коде, который написали не вы?
0
Владиславик
-131 / 0 / 0
Регистрация: 28.10.2013
Сообщений: 139
01.11.2013, 23:18  [ТС] #6
programina, послушайте, я пробовал во всем разобраться. Хватит меня преследовать на форуме, лучше помогите разобраться.
0
01.11.2013, 23:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.11.2013, 23:18
Привет! Вот еще темы с ответами:

из N выставленных оценок отбросить минимальную и максимальную и усреднить оставшиеся оценки - C++
The_Immortal, пожалуйста помогите мне составить Построить и записать алгоритм определения судейской оценки на спортивных соревнованиях....

Поменять местами строки, содержащие минимальную и максимальную суммы абсолютных значений - C++
Доброго времени суток! Помогите пожалуйста написать код. Дана целочисленная прямоугольная таблица размером m×n. Поменять местами...

Найти сумму и количество цифр числа, а также максимальную и минимальную его цифры - C++
2.​ Дано многозначное число. Найти сумму и количество цифр этого числа, а также максимальную и минимальную цифры в этом числе. ...

Найти максимальную стоимость товара... - C++
6.Покупатель имеет купюры достоинством А(1), ...,А(n), а продавец - В(1), ...,В(m). Необходимо найти максимальную стоимость товара Р,...


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

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

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