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

не могу понять, почему не вычисляет - C++

Восстановить пароль Регистрация
 
Шмаков Дмитрий
0 / 0 / 0
Регистрация: 30.08.2010
Сообщений: 29
23.11.2011, 21:28     не могу понять, почему не вычисляет #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
79
80
81
82
83
84
85
86
#include <iostream>
#include <iomanip>
#include <fstream>
#include <cstdlib>
#include <cstddef>
using namespace std;
//Прототип функции для ввода матрицы
double** inputm(int n, int m);
//Прототип функции для вывода матрицы
void outputm(double** a, int n, int m);
//Прототип функции для поиска номера первого из столбцов, содержащих хотя бы один нулевой элемент
void nule(double** a, int n, int m, int &z);
// Главная функция 
void main()
{
    setlocale(LC_ALL,"Russian");
    double** a;
    int n, m, z;
    cout<<"\n Введите кол-во строк матрицы A = \n";
    cin>>n;
    cout<<"\n Введите кол-во столбцов матрицы A = \n";
    cin>>m;
    // Ввод матрицы A
    cout<<"\n Введите элементы матрицы A\n";
    a=inputm(n,m);
    // Вывод матрицы А
    cout<<"\n *** Матрица А *** \n";
    outputm(a,n,m);
    //Номер первого из столбцов
    nule(a, n, m, z);
    cout<<"\n Номер первого столбца = "<<z;
    cout<<endl;
}
 
 
// Ввод матрицы
double** inputm(int n, int m)
{
    double** a;
    int i, j;
    a=new double* [n];
    if (a==NULL)    {
                        cout<<"\n Не хватило ОП \n";
                        exit(1);
                    }
    for(i=0;i<n;i++)
    {
        a[i]=new double [m];
        if(a[i]==NULL)  {
                            cout<<"\n Не хватило ОП \n";
                            exit(1);
                        }
    }
    for(i=0;i<n;i++)
    {
        cout<<"\n Введите "<<i<<" строку \n";
        for(j=0;j<m;j++)
            cin>>a[i][j];
    }
    return a;
}
 
 
// Вывод матрицы
void outputm(double** a, int n, int m)
{
    int i, j;
    for(i=0;i<n;i++)
    {
        cout<<endl;
        for(j=0;j<m;j++)
            cout<<setw(10)<<a[i][j];
    }
}
//Определение функции для поиска номера первого из столбцов, содержащих хотя бы один нулевой элемент
void nule(double** a, int n, int m, int &z)
{
int i, j;
for(i=0;i<n;i++)
    {for(j=0;j<m;j++)
     if (a[i][j]=0) 
                    {z=j;
                     break;
                    }
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.11.2011, 21:28     не могу понять, почему не вычисляет
Посмотрите здесь:

Не могу понять почему... C++
C++ не могу понять почему не работает
ошибка не могу понять почему ! C++
C++ Не могу понять почему не работает
C++ Не могу понять почему не присваивает?(
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
HighPredator
 Аватар для HighPredator
5342 / 1725 / 320
Регистрация: 10.12.2010
Сообщений: 5,108
Записей в блоге: 3
23.11.2011, 21:38     не могу понять, почему не вычисляет #2
Цитата Сообщение от Шмаков Дмитрий Посмотреть сообщение
C++
1
if (a[i][j]=0)
Строчка 81. Думаю предполагалось сравнение (==). Возможно ошибка из-за этого.
Шмаков Дмитрий
0 / 0 / 0
Регистрация: 30.08.2010
Сообщений: 29
23.11.2011, 23:10  [ТС]     не могу понять, почему не вычисляет #3
ну, исправил! выдает, но брейк не работает (не правильно работает)

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
#include <iostream>
#include <iomanip>
#include <fstream>
#include <cstdlib>
#include <cstddef>
using namespace std;
//Прототип функции для ввода матрицы
double** inputm(int n, int m);
//Прототип функции для вывода матрицы
void outputm(double** a, int n, int m);
//Прототип функции для поиска номера первого из столбцов, содержащих хотя бы один нулевой элемент
void nule(double** a, int n, int m, int &z);
// Главная функция 
void main()
{
        setlocale(LC_ALL,"Russian");
        double** a;
        int n, m, z;
        cout<<"\n Введите кол-во строк матрицы A = \n";
        cin>>n;
        cout<<"\n Введите кол-во столбцов матрицы A = \n";
        cin>>m;
        // Ввод матрицы A
        cout<<"\n Введите элементы матрицы A\n";
        a=inputm(n,m);
        // Вывод матрицы А
        cout<<"\n *** Матрица А *** \n";
        outputm(a,n,m);
        //Номер первого из столбцов
        nule(a, n, m, z);
        cout<<"\n Номер первого столбца = "<<z;
        cout<<endl;
}
 
 
// Ввод матрицы
double** inputm(int n, int m)
{
        double** a;
        int i, j;
        a=new double* [n];
        if (a==NULL)    {
                                                cout<<"\n Не хватило ОП \n";
                                                exit(1);
                                        }
        for(i=0;i<n;i++)
        {
                a[i]=new double [m];
                if(a[i]==NULL)  {
                                                        cout<<"\n Не хватило ОП \n";
                                                        exit(1);
                                                }
        }
        for(i=0;i<n;i++)
        {
                cout<<"\n Введите "<<i<<" строку \n";
                for(j=0;j<m;j++)
                        cin>>a[i][j];
        }
        return a;
}
 
 
// Вывод матрицы
void outputm(double** a, int n, int m)
{
        int i, j;
        for(i=0;i<n;i++)
        {
                cout<<endl;
                for(j=0;j<m;j++)
                        cout<<setw(10)<<a[i][j];
        }
}
//Определение функции для поиска номера первого из столбцов, содержащих хотя бы один нулевой элемент
void nule(double** a, int n, int m, int &z)
{
int i, j;
for(i=0;i<n;i++)
        {for(j=0;j<m;j++)
         if (a[i][j]==0) 
                                        {z=j;
                                         break;
                                        }
        }
}
Smillles7
25 / 25 / 1
Регистрация: 23.04.2011
Сообщений: 130
23.11.2011, 23:55     не могу понять, почему не вычисляет #4
Может break и для второго for написать???
Yandex
Объявления
23.11.2011, 23:55     не могу понять, почему не вычисляет
Ответ Создать тему
Опции темы

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