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

Проверка кода программы - C++

Восстановить пароль Регистрация
 
takewa
 Аватар для takewa
10 / 7 / 1
Регистрация: 15.08.2010
Сообщений: 372
18.12.2012, 00:22     Проверка кода программы #1
Добрый вечер всем. Программу вроде бы написал правильно, вот только она не хочет искать сумму столбцов.
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
#include <iostream>
#include <math.h>
using namespace std;
int main ()
{
    int **mas,n,m,i,j,j1,temp,temp1,sum;
    bool f1;
    cout<<"vvedite kol-vo strok: "<<endl;cin>>n;
    if(n<0) cout<<"error"<<endl;
        else
        cout<<"vvedite kol-vo stolbcov: "<<endl;cin>>m;
    if(m<0) cout<<"error"<<endl;
    else 
        mas=new int*[n];
    for(i=0;i<n;i++)
        mas[i]=new int[m];
    cout<<"\nVVevidte elementi: "<<endl;
        for(i=0;i<n;i++)
            for(j=0;j<m;j++)
            {
                cout<<"["<<i+1<<"]["<<j+1<<"]=";
                cin>>mas[i][j];
            }
            cout<<"\nIsxodnaya matrica: "<<endl;
            for(i=0;i<n;i++)
            {
                for(j=0;j<m;j++)
                {
                    cout<<mas[i][j]<<'\t';
                
                }
                cout<<endl;
            }
                cout<<endl;
                for(j=0;j<m-1;j++)
                    for(j1=0;j1<m-1-j;j1++)
                    {temp1=temp=0;
                    for(i=0;i<n;i++)
                    {
                        if(mas[i][j1]<0 && abs(mas[i][j1]%2==-1))
                            temp+=abs(mas[i][j1]);
                        if(mas[i][j1+1]<0 && abs(mas[i][j1+1]%2==-1))
                            temp1+=abs(mas[i][j1+1]);
                    }
                    if(temp>temp1)
                        for(i=0;i<n;i++)
                        {temp=mas[i][j1];
                        mas[i][j1]=mas[i][j1+1];
                        mas[i][j1+1]=temp;
                        }
                    }
                    cout<<"\nNovaya Matrica: "<<endl;
                    for(i=0;i<n;i++)
                    {
                        for(j=0;j<m;j++)
                        {cout<<mas[i][j]<<'\t';
                        }
                        cout<<endl;
                    }
                    cout<<endl;
                    
                        sum=0;f1=true;
                        for(j=0;j<m;j++)
                        {
                            sum+=mas[i][j];
                            if(mas[i][j]<0)
                                f1=false;
                        }
                        cout<<"v stolbce "<<j+1;
                        if(!f1)
                            cout<<" est' otricatel'nie elementi i summa ravna"<<sum<<endl;
                        else cout<<" net otricatel'nix elementov"<<endl;
                    
                    cout<<endl;
                    return 0;
            
 
}
63-73 строки, если над 3 строкой дописать
C++
1
for(i=0;i<n;i++)
, то она будет считать сумму строк!
при этом, постоянно пишет в строке "4" почему так??!! саму сумму строк, которую считать не надо, она считает правильно? менял 69 строку на i+1 , j+1 эффекта 0. И если можете проверьте правильна ли работает программа.
характеристикой столбца целочисленной матрицы назовем сумму модулей его отрицательных нечетных элементов. Характеристикой столбца целочисленной матрицы назовем сумму модулей его отрицательных нечетных элементов. Переставляя столбцы заданной матрицы, расположить их в соответствии с ростом характеристик.

Добавлено через 3 часа 48 минут
Разобрался сам. если кому надо меняйте с 63 строки на
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
for(i=0;i<n;i++){
                        sum=0;f1=true;
                        for(j=0;j<m;j++)
                        {
                            sum+=mas[j][i];
                            if(mas[j][i]<0)
                                f1=false;
                        }
                            
                        if(!f1)
                            cout<<" est' otricatel'nie elementi i summa ravna: "<<sum<<endl;
                        else cout<<" net otricatel'nix elementov: "<<endl;
                    }
                    cout<<endl;
                    return 0;
            
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.12.2012, 00:22     Проверка кода программы
Посмотрите здесь:

Экстремумы проверка кода C++
Проверка правильности кода программы. C++
Проверка и доработка кода. C++
C++ проверка кода на правильность
C++ Проверка на правильность кода
проверка кода, функции C++
Необходима проверка кода программы C++
Проверка XML кода на ошибки C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
v.a.l.i.d
 Аватар для v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
18.12.2012, 09:46     Проверка кода программы #2
C++
1
2
3
4
5
6
7
8
9
for (int x=0; x<m; x++)
{
    int sum = 0;
    
    for (int y=0; y<n; y++)
        sum += mas[x][y];
        
    cout << "Сумма в " << (x+1) << " столбце равна " << sum << endl;
}
Yandex
Объявления
18.12.2012, 09:46     Проверка кода программы
Ответ Создать тему
Опции темы

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