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

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

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

Почему все обнуляется??? - C++

31.05.2011, 00:48. Просмотров 842. Ответов 10
Метки нет (Все метки)

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 <iostream.h>
#include <iomanip.h>
 
  // прототипы функций
void input ( float [5][6], char);
void raschet ( float [5][6], float , float*,float*, int);
void output ( float [5][6], char, float, float, int);
 
void main()
{
  // объявление массивов и переменных
 float a[5][6],b[5][6],otra,otrb,maxa,maxb,maxa_otr,maxb_otr;
 int kola_nul,kolb_nul;
  /*otra - для присваиваивания отриц-го значения в  массиве a,      
    otrb - для присваиваивания отриц-го значения в  массиве b;
    maxa - наиб.значение массива a,
    maxb - наиб.значение массива b;
    maxa_otr - наиб.значение из всех отриц.значений массива а,
    maxb_otr - наиб.значение из всех отриц.значений массива b;
    kola_nul - кол-во нулевых значений массива a,
    kolb_nul - кол-во нулевых значений массива a */
 
  // обращение к функциям (вызов для выполнения)
input ( a, 'a');
input ( b, 'b');
raschet( a, otra, &maxa, &maxa_otr, kola_nul);
raschet( b, otrb, &maxb, &maxb_otr, kolb_nul);
output( a, 'a', maxa, maxa_otr, kola_nul);
output( b, 'b', maxb, maxb_otr, kolb_nul);
}
 
  // определение функции ввода массива input()
void input ( float x[5][6], char name)
{
 int i, j;
 cout << "Vvodim massiv " << name << endl;
 for (i=0; i<5; i++)
  for (j=0; j<6; j++)
  {
   cout << " Vvedite " << name << "[" << i << "][" << j << "]=";
   cin >> x[i][j];
  }
}
 
  // определение расчетной функции
  // в качестве аргументов у данной функции два указателя
void raschet ( float x[5][6], float otr,float *max, float *max_otr,int kol_nul)
{
 int i,j;
 otr=0;
 *max = 0;
 *max_otr = 0;
 kol_nul=0;
 
  // нахождение наиб.значения из всех элементов
{
 for (i=0; i<5; i++)
  for (j=0; j<6; j++)
   if ( x[i][j] > *max )
   {
    *max=x[i][j];
   }
 
  // кол-во нулевых значений
 for (i=0; i<5; i++)
  for (j=0; j<6; j++)
   if ( x[i][j] = 0 )
   {
    kol_nul++;
   }
}
  // нахождение наиб.значения из всех отриц-ных значений
 
 for (i=0; i<5; i++)
  for (j=0; j<6; j++)
   if ( x[i][j] < 0 )
   {
    otr=x[i][j];
   }
   if(*max_otr = 0 && otr > *max_otr)
   {
    *max_otr = otr;
   }
}
 
  // определение функции вывода output()
void output ( float x[5][6], char name, float max, float max_otr,int kol_nul)
{
 int i,j;
 cout << " Ishodnyi massiv " << name << ":" << endl;
 for (i=0; i<5; i++)
 {
  for (j=0; j<6; j++)
   cout << setw(7) << x[i][j];
   cout << endl;
 }
 cout << "\nNaibolshee znachenie iz vseh znachenii massiva"<< name << " = " << max << endl;
 cout << "Naibolshee znachenie iz vseh otricatelnyh znachenii massiva"<< name << " = " << max_otr << endl;
 cout << "Kolichestvo nulevyh znachenii massiva"<< name << " = " << kol_nul << endl;
 cin.get();
 cin.get();
}
Ввожу массивы, результат-массив обнулен, как исправить?
Нужно для каждого массива опpеделить: наибольшее из всех отpицательных
значений, наибольшее из всех значений, количество нулевых
значений.
На указатели не обращайте внимание, так требуется(и без них все обнуляется).
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2011, 00:48
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Почему все обнуляется??? (C++):

Почему мой указатель обнуляется? - C++
Почему мой указатель обнуляется на какой-то итерации? задача: Функцию, которая возвращает среднее геометрическое элементов столбца и...

Почему не обнуляется указатель через функцию? - C++
В функцию передаю указатель на целое число, хочу удалить память а сам указатель установить в NULL. Но он не устанавливается. Если все...

Почему во время чтения из файла переменная row_i в цикле постоянно обнуляется? - C++
Имеется следующий код: #include &lt;iostream&gt; #include &lt;fstream&gt; using namespace std; int main () { char row;

Переполнение знаковых целых чисел: почему значение переменной обнуляется, а не записывается младшее значение? - C++
что то не пойму, как происходит переполнение знаковых целых чисел вот #include &lt;iostream&gt; int main(int argc, char* argv) { ...

Обнуляется указатель - C++
Есть класс: class person { float x, y; float s; block collision(vector&lt;block&gt;::iterator* start, part* p); vector&lt;block&gt;*...

Не обнуляется память - C++
Добрый день. Подскажите пожалуйста. hFileMemory = CreateFileMapping(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, kol,...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
31.05.2011, 05:32 #2
C++
1
void raschet ( float x[5][6], float otr,float *max, float *max_otr,int kol_nul)
во-первых, непонятно, зачем otr передавать, если её можно внутри функции создать
во-вторых, kol_nul передаётся, потом наращивается, но не используется

C++
1
void raschet(float x[][6], float *max, float *max_otr,int *kol_nul)
либо так, в стиле C++
C++
1
void raschet(float x[][6], float &max, float &max_otr,int &kol_nul)
0
irina3456
1 / 1 / 0
Регистрация: 23.05.2011
Сообщений: 91
31.05.2011, 07:00  [ТС] #3
Все равно массив обнуляется
0
dihlofos
Бродяга
303 / 257 / 17
Регистрация: 27.08.2010
Сообщений: 553
31.05.2011, 07:16 #4
irina3456, сами же обнуляете в 67 строке:
C++
1
if ( x[i][j] = 0 )
Исправьте на ==
1
irina3456
1 / 1 / 0
Регистрация: 23.05.2011
Сообщений: 91
31.05.2011, 07:28  [ТС] #5
теперь не обнуляется, максимум вычисляет, а вот максимальное среди отрицательных и кол. нулей равно 0????
0
dihlofos
Бродяга
303 / 257 / 17
Регистрация: 27.08.2010
Сообщений: 553
31.05.2011, 08:04 #6
Цитата Сообщение от irina3456 Посмотреть сообщение
кол. нулей равно 0????
Замечания accept учли? Всё правильно должно быть.

Насчёт максимального среди отрицательных, не уверен, что у вас правильно, переделал как-то так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
for (i = 0; i < 5; i++)
{
    for (j = 0; j < 6; j++)
    {
        if (x[i][j] < 0)
        {
            // находим первый отрицательный
            if ( max_otr == 0 )
                max_otr = x[i][j];
 
            // сравниваем следующие отрицательные
            else if (x[i][j] > max_otr)
                max_otr = x[i][j];
        }
    }
}
1
irina3456
1 / 1 / 0
Регистрация: 23.05.2011
Сообщений: 91
31.05.2011, 09:19  [ТС] #7
я не знаю что такое Замечания accept (((

Добавлено через 17 минут
Теперь не считает количество нулей, значит у меня условия изначально были заданы не правильно
1
Kastaneda
Форумчанин
Эксперт С++
4653 / 2862 / 228
Регистрация: 12.12.2009
Сообщений: 7,271
Записей в блоге: 2
Завершенные тесты: 1
31.05.2011, 09:24 #8
Цитата Сообщение от irina3456 Посмотреть сообщение
я не знаю что такое Замечания accept (((

Посмотри второй пост)
0
irina3456
1 / 1 / 0
Регистрация: 23.05.2011
Сообщений: 91
31.05.2011, 09:30  [ТС] #9
ничего смешного, я "туга на думы")))),как нулевые значения найти, что не верно
C++
1
2
3
4
5
6
7
8
9
10
for (i=0; i<5; i++)
  {
   for (j=0; j<6; j++)
    {
     if ( x[i][j] == 0 )
     {
      *kol_nul++;
     }
    }
  }
0
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
31.05.2011, 09:37 #10
C++
1
(*kol_nul)++;
1
irina3456
1 / 1 / 0
Регистрация: 23.05.2011
Сообщений: 91
31.05.2011, 09:45  [ТС] #11
Люди добрые, спасибо большое, я побежала сдавать!!!!!!!!!!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.05.2011, 09:45
Привет! Вот еще темы с ответами:

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

Переменная не обнуляется до конца - C++
Добрый день! Мне необходимо написать программу для расчета функции и вывести все ее значения в таблицу. Коэффициенты функции, начальное и...

Не обнуляется vector<string> - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;vector&gt; #include &lt;algorithm&gt; #include &lt;string&gt; using namespace std; ...

Переменная произвольно обнуляется - C++
Здравствуйте. Есть класс: template&lt;const int k,const int n&gt; class GF { public: int F; // Массив многочленов. public: //...


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

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

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