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

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

Войти
Регистрация
Восстановить пароль
 
Un Oom
0 / 0 / 0
Регистрация: 19.06.2012
Сообщений: 20
#1

Исправить ошибки - C++

19.06.2012, 14:22. Просмотров 357. Ответов 7
Метки нет (Все метки)

Выполнить задание 6-й лабораторной работы («Двумерные массивы»), оформив каждый пункт задания в виде функции. Все необходимые данные для функций должны передаваться им в качестве параметров. Использование глобальных переменных в функциях не допускается.

Я сделала, только не получается что-то, что-то неверно, не понимаю, в чём дело. ПОМОГИТЕ, ПОЖАЛУЙСТА!

Вот мой текст, который неправильный, в котором нужно что-то исправить.
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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
#include "stdafx.h"
#include <iostream>
#include <iomanip>
void EnterNum(int &n, const char * name);//Объявление Функции ввода положительного числа
void EnterMatrix(int &n,int &m,int **a);//Объявление Функции ввода матрицы
void WorkWithMatrix(int **a,int &n,int &m);//Объявление Функции работы с матрицей
int Min(int **a,int &n,int &m);//Объявление Функции минимума
void Sum(int **a,int &n,int &m);//Объявление Функции подсчета массива суммы
void DisplayMatrix(int **a,int &n,int &m);//Объявление Функции вывода матрицы
 
 
using namespace std;//Объявление пространства имён//
void main (void)
{
    setlocale(0, "Rus");
    char h;
    cout << "Здравствуйте! " << endl
         << "Желаете начать работу, y/n ";
    cin >> h;
    while (h=='y')
    {
        int n,m;
cout << "Размерность матрицы ";
        cin >> n >> m;
        int **a = new int* [n];
        for (int i = 0; i < n; i++) 
            a [i]=new int[m];
cout << "Введите значение матрицы"<<endl;
for(int i = 0; i < n; i++){
    for(int j = 0; j < m; j++){
        cin >> a [i][j];
    }
}
    int S1=0,S=0 ;
    for(int j = 0; j<n; j++)
    {
        for(int i = 0; i<m; i++){
            if(a[i][j] > 0) S += a[i][j];
            else {
                S=0;
                break;
                }
            } 
        S1+=S;
        S=0;
        }
    cout << "Сумма элементов: " << S1 << endl;
int min=a[0][0];
for(int i=1;i<n-1;i++){
    int sum=0;
    for(int j=0;j<i+1;j++){     
        sum+=a[i][j];
    }   
    if(min>sum){min=sum;}
 
}
 
for(int i=0;i<n-1;i++){
    int sum=0;
    for(int j=1;(j+i)<n;j++){   
        sum+=a[n-j][j+i];
    }   
    if(min>sum){min=sum;}
}
      cout<<"Минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы : "<<min<<"\n";
cout << "\nЖелаете продолжить работу, y/n " << endl;
 
    Sum(a,n,m);
    
}
int Min(int **a,int &n,int &m)//Описание Функции подсчета минимума
{   
    int Min=a[0][0];
    for(int i=1;i<n-1;i++)
    {
    int sum=0;
    for(int j=0;j<i+1;j++)
    {
        sum+=a[i][j];
    }   
    if(Min>sum){Min=sum;}
    }
    for(int i=0;i<n-1;i++){
    int sum=0;
    for(int j=1;(j+i)<n;j++){   
        sum+=a[n-j][j+i];
    }   
    if(Min>sum){Min=sum;}
}
return Min;
}
void Sum(int **a,int &n,int &m)//Описание Функции подсчета массива сумм
{
    int Sum=0;
    for(int j = 0; j<n; j++)
    {
        for(int i = 0; i<m; i++)
        {
            if(a[i][j] > 0 || a[i][j]==0) Sum += a[i][j];
            else
            {
                Sum=0;
                break;
 
            }
        }
        if ( Sum==0)
        {
            cout << "В столбце "<<j+1<<": содержаться отрицательные элементы " << endl;
        }
        else 
        {
        cout << "В столбце "<<j+1<<": " << Sum << endl;
        }
        Sum = 0;
}
}
void DisplayMatrix(int **a,int &n,int &m)//Описание Функции вывода матрицы
{   
    for(int j=0;j<m;j++)
        cout << "-------";
    for(int i=0;i<n;i++) 
    { 
        cout << "-" << endl << "| ";
        for(int j=0; j<m; j++)
            cout << setw(4)<< a[i][j] << " | ";
        cout << endl;
        for(int j=0;j<m;j++)
            cout << "-------";
    }
    cout << "-";
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.06.2012, 14:22
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Исправить ошибки (C++):

Найти ошибки в коде и исправить эти ошибки (Наследование) - C++
Вот в общем 3 файла, изучаю наследование на примере односвязного и двусвязного списков: list.h (inline) #pragma once class list...

Найти ошибки в коде и исправить эти ошибки - C++
Есть у меня вот такой код: #include &lt;iostream&gt; using namespace std; class A{ private: int* a; size_t size_; ...

Найти ошибки в коде и исправить эти ошибки - C++ - C++
Судя по вываливающейся ошибки, идет двойное освобождение памяти. У самого не получается отловить откуда. A.h #pragma once ...

Исправить ошибки - C++
Вволится строка , вывести слова длина которых меньше 5 { char str, word; printf(&quot;Введите строку : \n&quot;); ...

Исправить ошибки - C++
Откомпелируйте и исправьте ошибки в следующих программах: 1 программа: #include&lt;iostream&gt; using namespace std; int main() { ...

C++ исправить ошибки - C++
Помогите исправит ошибки=) #include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;math.h&gt; #include &lt;conio.h&gt; #include &lt;time.h&gt; using...

7
Root2x
12 / 12 / 0
Регистрация: 21.05.2012
Сообщений: 52
19.06.2012, 17:41 #2
Для удобства чтения:
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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
#include "stdafx.h"
#include <iostream>
#include <iomanip>
void EnterNum(int &n, const char * name);//Объявление Функции ввода положительного числа
void EnterMatrix(int &n,int &m,int **a);//Объявление Функции ввода матрицы
void WorkWithMatrix(int **a,int &n,int &m);//Объявление Функции работы с матрицей
int Min(int **a,int &n,int &m);//Объявление Функции минимума
void Sum(int **a,int &n,int &m);//Объявление Функции подсчета массива суммы
void DisplayMatrix(int **a,int &n,int &m);//Объявление Функции вывода матрицы
 
 
using namespace std;//Объявление пространства имён//
void main (void)
{
setlocale(0, "Rus");
char h;
cout << "Здравствуйте! " << endl
<< "Желаете начать работу, y/n ";
cin >> h;
while (h=='y')
{
int n,m;
cout << "Размерность матрицы ";
cin >> n >> m;
int **a = new int* [n];
for (int i = 0; i < n; i++) 
a [i]=new int[m];
cout << "Введите значение матрицы"<<endl;
for(int i = 0; i < n; i++){
for(int j = 0; j < m; j++){
cin >> a [i][j];
}
}
int S1=0,S=0 ;
for(int j = 0; j<n; j++)
{
for(int i = 0; i<m; i++){
if(a[i][j] > 0) S += a[i][j];
else {
S=0;
break;
}
} 
S1+=S;
S=0;
}
cout << "Сумма элементов: " << S1 << endl;
int min=a[0][0];
for(int i=1;i<n-1;i++){
int sum=0;
for(int j=0;j<i+1;j++){ 
sum+=a[i][j];
}   
if(min>sum){min=sum;}
 
}
 
for(int i=0;i<n-1;i++){
int sum=0;
for(int j=1;(j+i)<n;j++){   
sum+=a[n-j][j+i];
}   
if(min>sum){min=sum;}
}
cout<<"Минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы : "<<min<<"\n";
cout << "\nЖелаете продолжить работу, y/n " << endl;
 
Sum(a,n,m);
 
}
int Min(int **a,int &n,int &m)//Описание Функции подсчета минимума
{   
int Min=a[0][0];
for(int i=1;i<n-1;i++)
{
int sum=0;
for(int j=0;j<i+1;j++)
{
sum+=a[i][j];
}   
if(Min>sum){Min=sum;}
}
for(int i=0;i<n-1;i++){
int sum=0;
for(int j=1;(j+i)<n;j++){   
sum+=a[n-j][j+i];
}   
if(Min>sum){Min=sum;}
}
return Min;
}
void Sum(int **a,int &n,int &m)//Описание Функции подсчета массива сумм
{
int Sum=0;
for(int j = 0; j<n; j++)
{
for(int i = 0; i<m; i++)
{
if(a[i][j] > 0 || a[i][j]==0) Sum += a[i][j];
else
{
Sum=0;
break;
 
}
}
if ( Sum==0)
{
cout << "В столбце "<<j+1<<": содержаться отрицательные элементы " << endl;
}
else 
{
cout << "В столбце "<<j+1<<": " << Sum << endl;
}
Sum = 0;
}
}
void DisplayMatrix(int **a,int &n,int &m)//Описание Функции вывода матрицы
{   
for(int j=0;j<m;j++)
cout << "-------";
for(int i=0;i<n;i++) 
{ 
cout << "-" << endl << "| ";
for(int j=0; j<m; j++)
cout << setw(4)<< a[i][j] << " | ";
cout << endl;
for(int j=0;j<m;j++)
cout << "-------";
}
cout << "-";
}
Добавлено через 3 минуты
Напишите пожалуйста текст самого задания.
0
Andrey.K
342 / 263 / 15
Регистрация: 14.11.2010
Сообщений: 482
19.06.2012, 18:00 #3
Исправить не сложно, если есть текст задания.
0
Un Oom
0 / 0 / 0
Регистрация: 19.06.2012
Сообщений: 20
19.06.2012, 18:14  [ТС] #4
вот сам текст задания 6 лабораторной:

Дана целочисленная квадратная матрица. Определить:
1. сумму элементов в тех столбцах, которые не содержат отрицательных элементов;
2. минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы.
0
g-h
67 / 67 / 1
Регистрация: 03.06.2012
Сообщений: 176
19.06.2012, 18:38 #5
Цитата Сообщение от Root2x Посмотреть сообщение
C++
1
if(a[i][j] > 0 || a[i][j]==0) Sum += a[i][j];
здесь можно немного покороче написать:
C++
1
if (a[i][j] >= 0) Sum += a[i][j];
0
MrGluck
Модератор
Эксперт CЭксперт С++
7416 / 4531 / 670
Регистрация: 29.11.2010
Сообщений: 12,273
19.06.2012, 19:00 #6
C++
1
void main (void)
надо
C++
1
int main ()
Память не освободили.
Читать неудобно, отступы абы где.
0
Andrey.K
342 / 263 / 15
Регистрация: 14.11.2010
Сообщений: 482
19.06.2012, 19:18 #7
Угловые элементы матрицы считает тоже как диагональ.
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
103
104
105
106
107
#include <iostream>
#include <conio.h>
#include <ctime>
#include <cstdlib>
#include <cmath>
using namespace std;
void Input(int ** mas,int n)
{
    srand((unsigned)time(NULL));
    int min=-10,max=10;
    for(int i=0; i<n; i++)
    {
        for(int j=0; j<n; j++)
            mas[i][j]=rand() % (max - min + 1) + min;
    }
}
void Output(int** mas,int n)
{
    cout << "Матрица A("<< n << "*" << n << "):" << endl;
    for(int i=0; i<n; i++)
    {
        for(int j=0; j<n; j++)
        {
            cout<<mas[i][j]<<" ";
        }
        cout<<endl;
    }
}
void Sum(int** mas,int n)
{
    int* bufmas=new int[n];
    int pos=0,count=0,sum=0;
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<n;j++)
        {
            if(mas[j][i]>0) count++;
        }
        if(count==n) 
        {
            for(int j=0;j<n;j++)
            {
                sum+=mas[j][i];
            }
            bufmas[pos]=sum;
            pos++;
            sum=0;
            count=0;
        }
        else count=0;
    }
    cout<<"Сумма по столбцам: "<<endl;
    for(int i=0;i<pos;i++)
        cout<<bufmas[i]<<" ";
    cout<<endl;
}
void Min(int** mas,int n)
{
    int min=abs(mas[0][0]),sum=0;
    for(int i=1;i<n-1;i++)
    {
        int k=i;
        for(int j=0;j<i+1;j++)
        {
            sum+=abs(mas[k][j]);
            k--;
        }
        if(sum<min) min=sum;
        sum=0;
    }
    sum=0;
    if(min>abs(mas[n-1][n-1])) min=abs(mas[n-1][n-1]);
    for(int i=1;i<n-1;i++)
    {
        int k=i;
        for(int j=n-1;j>i-1;j--)
        {
            sum+=abs(mas[k][j]);
            k++;
        }
        if(sum<min) min=sum;
        sum=0;
    }
    cout<<endl<<"Минимум: "<<min<<endl;
}
int main()
{
    setlocale(0,"Rus");
    int n;
    cout<<"Введите размер матрицы(n): ";cin>>n;
    int **a=new int*[n];
    for(int i=0;i<n;i++)
        a[i]=new int[n];
    int* bufmas=new int[n*2+2];
    Input(a,n);
    Output(a,n);
    Sum(a,n);
    Min(a,n);
 
    for(int i=0;i<n;i++)
        delete[] a[i];
    delete[] a;
    delete[] bufmas;
 
    getch();
    return 0;
}
0
Un Oom
0 / 0 / 0
Регистрация: 19.06.2012
Сообщений: 20
19.06.2012, 19:41  [ТС] #8
большое спасибо!
0
19.06.2012, 19:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.06.2012, 19:41
Привет! Вот еще темы с ответами:

Исправить ошибки - C++
Прошу поправить ошибки и проверить правильность! #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; class...

Исправить ошибки - C++
#include&lt;iostream&gt; using namespace std; class empty { setlocale(LC_ALL,&quot;rus_rus.1251&quot;); char*obj_name; public: ...

Исправить ошибки. - C++
Не получается скомпилировать программу. Пожалуйста, укажите ошибки в программе и как их исправить. #include &lt;iostream&gt; #include...

Исправить ошибки - C++
#include &quot;iostream&quot; #include &quot;cmath&quot; #include &lt;conio.h&gt; #include &lt;stdio.h&gt; using namespace std; const float eps=0.0001; float...


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

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

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