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

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

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

Немного изменил код программы и она перестала работать. Не пойму почему. - C++

19.12.2012, 18:02. Просмотров 397. Ответов 8
Метки нет (Все метки)

Программа работала, но нужно было вынести вывод суммы в main( до этого выводилась в sum). Для этого удалил строчку из sum, и добавил новую строку cout<< Sum(n,a); в main, теперь выдает ошибку.

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
#include<iostream>
#include<locale>
#define N 100
 
using namespace std;
 
void inMas1(int& n,int a[N][N])
{
    cout<<"\nВвод элементов матрицы A \n";
    for (int i=0; i<n; i++)      
        for (int j=0; j<n; j++)  
        {   
            cout<<"a["<<i<<"]["<<j<<"]=";
            cin>>a[i][j];    
        }   
}
 
void outMas1(int n,int a[N][N])
{
    cout<<"\nВведена матрица A \n";
    for (int i=0; i<n; i++)
    {
        for (int j=0; j<n; j++)
        cout<<a[i][j]<<"\t"; 
        cout<<endl; 
    }
}
 
bool uslov (int n, int a[N][N])
//В каждом столбце все элементы на чётных местах нечётны.
{
    int k=0;
    for(int j=0; j<n; j++)      
    {
        
        for(int i=1; i<n; i+=2)
        {
            if(a[i][j]%2!=0);  
            else 
                return 0;
            }
    }
    return 1;
}
 
 
int Sum(int& n, int a[N][N])
//Вычислить сумму элементов в области 3-4
{
    int s=0,i,j;
    for(int i=0;i<n;i++)
    {
        int j;
        if(i<(n/2)) j=n-i-1;
        else j=i;
        for(;j<n;j++)
    
}
    return s;
}
 
int main()
{
    setlocale (LC_ALL, "RUS");
    int i,j,n,m,a[N][N];
    cout<<"n="; 
    cin>>n;                                             
    inMas1(n,a);
    outMas1(n,a);
    if(uslov(n,a))
    {
        cout<<"\nМатрица верна, в столбцах на четных местах все элементы нечетны."<<endl;
        
    }
    else
  
        cout<<"\nМатрица не верна, программа будет закрыта."<<endl;
    cout<< Sum(n,a);
    
        system("pause");
 
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.12.2012, 18:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Немного изменил код программы и она перестала работать. Не пойму почему. (C++):

Почему перестала работать запись в файл? - C++
Почему перестала работать запись в файл? #include &lt;cstdio&gt; #include &lt;cstring&gt; #include &lt;iostream&gt; #include &lt;fstream&gt; #include...

Почему не хочет работать код? - C++
Если динамическое выделение памяти, то работать не хочет. #include &lt;iostream&gt; #include &lt;cstdio&gt; using namespace std; int main()...

Почему когда в рабочую программу вставляю setlocale(LC_ALL, "Rus"); она перестает корректно работать - C++
Программа сначала считывает данные с файла, потом сортирует их и сохраняет. Мне нужно было сделать меню на русском, но после добавления...

Как дополнить код Windows программы, чтобы она отобразила в окне геометрическую фигуру? - C++
Здравствуйте. У меня есть программа, которая выводит пустое Windows окно, что нужно добавить, чтобы в этом окне появилась геометрическая...

Выдает ошибку i/o error 6 в delphi она останаливается на Read не пойму почему? - Delphi
procedure TForm4.Button1Click(Sender: TObject); var Z:integer; begin AssignFile(F,'C:\info.dat'); Rewrite(F); for Z:=1 to N do ...

Почему перестала работать Nvidia 9500 GT - Видеокарты
Почему перестала работать видеокарта Nividia Geforce 9500 Gt она до этого работала и в одно прекрасное время перестала. Дело было так я...

8
sovaz1997
CEO SOVAZ Corp.
380 / 226 / 2
Регистрация: 17.12.2011
Сообщений: 819
Записей в блоге: 1
Завершенные тесты: 1
19.12.2012, 18:06 #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
#include<iostream>
#include<locale>
#define N 100
 
using namespace std;
 
void inMas1(int& n,int a[N][N])
{
    cout<<"\nВвод элементов матрицы A \n";
    for (int i=0; i<n; i++)
        for (int j=0; j<n; j++)
        {
            cout<<"a["<<i<<"]["<<j<<"]=";
            cin>>a[i][j];
        }
}
 
void outMas1(int n,int a[N][N])
{
    cout<<"\nВведена матрица A \n";
    for (int i=0; i<n; i++)
    {
        for (int j=0; j<n; j++)
        cout<<a[i][j]<<"\t";
        cout<<endl;
    }
}
 
bool uslov (int n, int a[N][N])
//В каждом столбце все элементы на чётных местах нечётны.
{
    int k=0;
    for(int j=0; j<n; j++)
    {
 
        for(int i=1; i<n; i+=2)
        {
            if(a[i][j]%2!=0);
            else
                return 0;
            }
    }
    return 1;
}
 
 
int Sum(int& n, int a[N][N])
//Вычислить сумму элементов в области 3-4
{
    int s=0,i,j;
    for(int i=0;i<n;i++)
    {
        int j;
        if(i<(n/2)) j=n-i-1;
        else j=i;
        for(;j<n;j++);
 
}
    return s;
}
 
int main()
{
    setlocale (LC_ALL, "RUS");
    int i,j,n,m,a[N][N];
    cout<<"n=";
    cin>>n;
    inMas1(n,a);
    outMas1(n,a);
    if(uslov(n,a))
    {
        cout<<"\nМатрица составлена верно, в столбцах на четных местах все элементы нечетны."<<endl;
 
    }
    else
 
        cout<<"\nМатрица не подходит по условию,программа будет закрыта."<<endl;
    cout<< Sum(n,a);
 
 
 
 
    return 0;
}
1
s3423
0 / 0 / 0
Регистрация: 22.11.2012
Сообщений: 31
19.12.2012, 18:11  [ТС] #3
Подправил код в первом сообщении, вот он не работает, выдает ошибку


sovaz1997, Она работает? А что было не так?

Еще вопрос по функции условия
C++
1
2
3
4
5
6
7
8
9
10
11
12
    for(int j=0; j<n; j++)
    {
 
        for(int i=1; i<n; i+=2)
        {
            if(a[i][j]%2!=0);
            else
                return 0;
            }
    }
    return 1;
}
Как изменить, чтобы упростился код и не использовать else?
0
Croessmah
Эксперт CЭксперт С++
13510 / 7668 / 866
Регистрация: 27.09.2012
Сообщений: 18,866
Записей в блоге: 3
Завершенные тесты: 1
19.12.2012, 18:13 #4
Цитата Сообщение от s3423 Посмотреть сообщение
Как изменить, чтобы упростился код и не использовать else?
C++
1
if(a[i][j]%2==0) return 0;
1
s3423
0 / 0 / 0
Регистрация: 22.11.2012
Сообщений: 31
19.12.2012, 18:16  [ТС] #5
Croessmah, Она теперь проверяет по другому?
0
sovaz1997
CEO SOVAZ Corp.
380 / 226 / 2
Регистрация: 17.12.2011
Сообщений: 819
Записей в блоге: 1
Завершенные тесты: 1
19.12.2012, 18:17 #6
Цитата Сообщение от s3423 Посмотреть сообщение
sovaz1997, Она работает? А что было не так?
Работает
1
s3423
0 / 0 / 0
Регистрация: 22.11.2012
Сообщений: 31
19.12.2012, 19:49  [ТС] #7
sovaz1997, Сейчас попробывал на vs2010, ошибок нет, но консоль сразу закрывается после ввода матрицы. Это от студии зависит, или прграмма так работает, мгновенно закрывает, что я даже результат не успеваю разглядеть?

Добавлено через 1 минуту
Этот кусок
C++
1
2
3
  if(a[i][j]%2!=0);
            else
                return 0;
заменить на
C++
1
if(a[i][j]%2==0) return 0;
?
0
sovaz1997
CEO SOVAZ Corp.
380 / 226 / 2
Регистрация: 17.12.2011
Сообщений: 819
Записей в блоге: 1
Завершенные тесты: 1
19.12.2012, 19:49 #8
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
#include<iostream>
#include<locale>
#define N 100
 
using namespace std;
 
void inMas1(int& n,int a[N][N])
{
    cout<<"\nВвод элементов матрицы A \n";
    for (int i=0; i<n; i++)
        for (int j=0; j<n; j++)
        {
            cout<<"a["<<i<<"]["<<j<<"]=";
            cin>>a[i][j];
        }
}
 
void outMas1(int n,int a[N][N])
{
    cout<<"\nВведена матрица A \n";
    for (int i=0; i<n; i++)
    {
        for (int j=0; j<n; j++)
        cout<<a[i][j]<<"\t";
        cout<<endl;
    }
}
 
bool uslov (int n, int a[N][N])
//В каждом столбце все элементы на чётных местах нечётны.
{
    int k=0;
    for(int j=0; j<n; j++)
    {
 
        for(int i=1; i<n; i+=2)
        {
            if(a[i][j]%2!=0);
            else
                return 0;
            }
    }
    return 1;
}
 
 
int Sum(int& n, int a[N][N])
//Вычислить сумму элементов в области 3-4
{
    int s=0,i,j;
    for(int i=0;i<n;i++)
    {
        int j;
        if(i<(n/2)) j=n-i-1;
        else j=i;
        for(;j<n;j++);
 
}
    return s;
}
 
int main()
{
    setlocale (LC_ALL, "RUS");
    int i,j,n,m,a[N][N];
    cout<<"n=";
    cin>>n;
    inMas1(n,a);
    outMas1(n,a);
    if(uslov(n,a))
    {
        cout<<"\nМатрица составлена верно, в столбцах на четных местах все элементы нечетны."<<endl;
 
    }
    else
 
        cout<<"\nМатрица не подходит по условию,программа будет закрыта."<<endl;
    cout<< Sum(n,a);
 
 
    cin >> n;
 
    return 0;
}
1
s3423
0 / 0 / 0
Регистрация: 22.11.2012
Сообщений: 31
20.12.2012, 16:01  [ТС] #9
sovaz1997, Теперь консоль норм работает, но сумму не выводит

Добавлено через 24 минуты
Такой код получился, сумму не считает
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
#include<iostream>
#include<locale>
#define N 100
 
using namespace std;
 
void inMas1(int& n,int a[N][N])
{
    cout<<"\nВвод элементов матрицы A \n";
    for (int i=0; i<n; i++)
        for (int j=0; j<n; j++)
        {
            cout<<"a["<<i<<"]["<<j<<"]=";
            cin>>a[i][j];
        }
}
 
void outMas1(int n,int a[N][N])
{
    cout<<"\nВведена матрица A \n";
    for (int i=0; i<n; i++)
    {
        for (int j=0; j<n; j++)
        cout<<a[i][j]<<"\t";
        cout<<endl;
    }
}
 
bool uslov (int n, int a[N][N])
//В каждом столбце все элементы на чётных местах нечётны.
{
    int k=0;
    for(int j=0; j<n; j++)
    {
 
        for(int i=1; i<n; i+=2)
        {
            if(a[i][j]%2==0) return 0;
            }
    }
    return 1;
}
 
 
int Sum(int& n, int a[N][N])
//Вычислить сумму элементов в области 3-4
{
    int s=0,i,j;
    for(int i=0;i<n;i++)
    {
        int j;
        if(i<(n/2)) j=n-i-1;
        else j=i;
        for(;j<n;j++);
 
}
    return s;
}
 
int main()
{
    setlocale (LC_ALL, "RUS");
    int i,j,n,m,a[N][N];
    cout<<"n=";
    cin>>n;
    inMas1(n,a);
    outMas1(n,a);
    if(uslov(n,a))
    {
        cout<<"\nМатрица составлена верно, в столбцах на четных местах все элементы нечетны."<<endl;
 
    }
    else
 
        cout<<"\nМатрица не подходит по условию,программа будет закрыта."<<endl;
    cout<< Sum(n,a);
 
 
    cin >> n;
 
    return 0;
}
Добавлено через 1 час 10 минут
Как сделать, чтобы считалась и выводилась сумма? В чем ошибка?
0
20.12.2012, 16:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.12.2012, 16:01
Привет! Вот еще темы с ответами:

не пойму в чем дело, программа должна работать, но она черт побери не работает :( (программа по работе с реестром) - Delphi
Программа предназначена для поиска какого-нить слова по реестру и удаления ключа или раздела если в нем встречается искомое слово. С...

Не пойму почему не работает код? - Java
Не пойму почему не работает код? package labor6.feladat1; import static labor6.feladat1.Labor6Feladat1.tomb; /** * @author...

Дискретная видеокарта в ноутбуке перестала работать код 43 (нвидиа 740м) - Ремонт ноутбуков
В чем суть: после синего экрана перестала работать дискретная видеокарта(nvidia 740 m) (код 43), модель ноута asus x550 lb,драйвера...

Накапливается ошибка в цикле программы на Fortran. Не пойму почему - Fortran
Программу привожу для примера. program cikle !real x, x_vec(500000) real(8) x, x_vec(500000) integer i x=0 do...


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

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

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