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

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

Войти
Регистрация
Восстановить пароль
 
mus
 Аватар для mus
52 / 59 / 6
Регистрация: 22.03.2009
Сообщений: 173
#1

программа неправильно считает - C++

15.11.2009, 22:16. Просмотров 511. Ответов 1
Метки нет (Все метки)

Здравствуйте написал программу но она считает неправильно кол-во столбцов либо не считает вовсе.

Предполагаю что нужно что то менять в перемемнной k, но игрался с разными её положениями в процедуре ничего не помогло.

Подскажите плз в чем ошибка ? зарание благодарен

Вот сама задача: Посчитать сумму отрицательных элементов в каждом столбце матрицы
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
#include <iostream.h>
#include <iomanip.h>
#include <stdlib.h>
#include <conio.h>
const int nElem = 20;
struct Massiv_2{int Rows, Cols; float array2[nElem][nElem];};
struct Massiv_1{int Cols; float array1[nElem];};
// Прототипы функций:
Massiv_2 init(int m, int n);        // инициализация двухмерного массива;
void out2(Massiv_2 mas2);   // вывод элементов двухмерного массива;
Massiv_1 sum_minus_in_cols (Massiv_2 mas2); // суммы модулей в строках;
void out1(Massiv_1 mas1);   // вывод элементов одномерного массива.
 
void main(void)
{
clrscr(); randomize();
int M, N;
cout<<"Rows "<<"(<="<<nElem<<"): ";cin>>M;
cout<<"Cols "<<"(<="<<nElem<<"): ";cin>>N;
Massiv_2 m2= init(M,N);
out2(m2);
Massiv_1 m1 = sum_minus_in_cols(m2);
out1(m1);
getch();
}
 
// Объявление функций.
Massiv_2 init(int m, int n)
{Massiv_2 mas2; mas2.Rows = m; mas2.Cols = n;
for(int i = 0; i < m; i++)
  for(int j = 0; j < n; j++)
   mas2.array2[i] [j] = (float)(random(30) - 15) / 10;
return mas2;
}
 
void out2(Massiv_2 mas2)
{for(int i = 0; i < mas2.Rows; i++)
  {for(int j = 0; j < mas2.Cols; j++)
        cout << setprecision(2) << setw(5) << mas2.array2[i] [j];
  cout<<"\n";
  }
}
 
Massiv_1 sum_minus_in_cols(Massiv_2 mas2)
{
Massiv_1 mas1;
float S;
int k=-1;
mas1.Cols = mas2.Rows;
for(int i = 0; i<mas1.Cols; i++) mas1.array1[i] = 0;
for(int i=0; i < mas2.Cols; i++)
  {
 
    S=0;
    for(int j = 0; j<mas2.Rows; j++)
     {   ++k;
      if (mas2.array2[i][j] < 0)
       {
 
        mas1.array1[k] += mas2.array2[i][j];
       }
     }
  }
return mas1;
}
 
void out1(Massiv_1 mas1)
{cout<<"\n";
for(int i = 0; i < mas1.Cols; i++)
  cout << setprecision(2) << setw(5) << mas1.array1[i];
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.11.2009, 22:16     программа неправильно считает
Посмотрите здесь:

C++ Неправильно считает
C++ Программа неправильно считает
С++ неправильно считает C++
Программа без синтаксических ошибок, но иногда считает неправильно C++
Неправильно считает. где ошибка? C++
Неправильно считает C++
C++ Программа неправильно считает длину вектора
Программа неправильно считает C++
Почему программа неправильно считает сумму? C++
C++ Программа неправильно считает напряжение (U)
C++ Программа неправильно считает
Функция неправильно считает сумму C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
16.11.2009, 04:13     программа неправильно считает #2
M и N просто созданы и всё

вместо
C++
1
struct Massiv_2{int Rows, Cols; float array2[nElem][nElem];};
C++
1
2
3
4
struct Massiv_2 {
    int Rows, Cols;
    float array2[nElem][nElem];
};
при ошибке в какой-нибудь строке уходит допольнительное время на то, чтобы определить в каком именно операторе ошибка (во время компиляции),
поэтому общепринято писать: один оператор - одна строка
Yandex
Объявления
16.11.2009, 04:13     программа неправильно считает
Ответ Создать тему
Опции темы

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