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

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

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

Найти ошибку в программе - C++

17.03.2014, 22:13. Просмотров 612. Ответов 21
Метки нет (Все метки)

Помогите найти ошибку.
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
#include <iostream>
 
using namespace std;
 
int main()
{
    int a[15],kol=0,koll=0;
 
    for(int i=0;i<15;i=i+1)
    {
    cout << "[" << i+1 << "]:";
    cin >> a[i];
    }
     
    cout << "\n";
 
    for(int i=0;i<15;i=i+1)
    {
    cout << "Vasha matrica\n" << a[i] <<"\n";
    }
 
    for(int i=0;i<15;i=i+1)
    {
        if (a[i]%2=0)
            kol=kol+1;
 
        if ((a[i]%2!=0)&&(a[i]=>1)&&(a[i]<=11))
            koll=koll+1;
    }
 
    cout << "Kol chetnix chisel: " << kol;
    cout << "Kol nechetnix v kvadrate: " << koll*koll;
 
 
return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.03.2014, 22:13
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти ошибку в программе (C++):

Найти ошибку в программе: в visual studio выдает ошибку - C++
#include &lt;math.h&gt; #include &lt;conio.h&gt; #include &lt;iostream&gt; using namespace std; int main() { double x, E, ypred, y, S; ...

найти ошибку в программе - C++
Программа должна обеспечивать ввод с клавиатуры числа от 0 до 255 (типа unsight char), переводить его в двоичную систему, а далее в...

Найти ошибку в программе - C++
Найти к-е число Фибоначчи,такое,что x(k-1)&lt;a&lt;x(k). Числа Фибоначчи:x(1)=x(2)=1;x(k)=x(k-2)+x(k-1) #include &quot;stdafx.h&quot; #include...

найти ошибку в программе - C++
#include &quot;stdafx.h&quot; #include &lt;conio.h&gt; #include &lt;iostream&gt; #include &lt;stdio.h&gt; using namespace std; void _tmain() { char...

Найти ошибку в программе - C++
#include &lt;stdafx.h&gt; #include &lt;iostream&gt; #include &lt;cstdlib&gt; #include &lt;fstream&gt; #include &lt;ctime&gt; using namespace std; int...

Найти ошибку в программе - C++
#include&lt;iostream&gt; #include&lt;stdio.h&gt; #include&lt;vector&gt; using namespace std; int main(){ int n; cin&gt;&gt;n; vector&lt;int&gt;...

21
KOPOJI
Модератор
Эксперт HTML/CSSЭксперт PHP
16701 / 6623 / 433
Регистрация: 12.06.2012
Сообщений: 19,880
Завершенные тесты: 1
17.03.2014, 22:54 #16
C++
1
cout << "Kol nechetnix v kvadrate:\n " << (b=pow(koll,2));
C++
1
cout << "Kol nechetnix v kvadrate:\n " << (b = koll * koll);
C++
1
cout << "Kol nechetnix v kvadrate:\n " << pow(koll,2);
C++
1
cout << "Kol nechetnix v kvadrate:\n " << koll * koll;

Не по теме:

неужто ошибки в компиляторе выключены

1
dzrkot
zzzZZZ...
519 / 349 / 53
Регистрация: 11.09.2013
Сообщений: 2,004
17.03.2014, 22:55 #17
да я что-то сглупил непростительно, прошу прощения
0
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
17.03.2014, 23:00 #18
Цитата Сообщение от KOPOJI Посмотреть сообщение
неужто ошибки в компиляторе выключены

Не по теме:

А живые компиляторы на что?? ( Мы с Вами) как же выключены, работаем и исправно


dzrkot, нормально все бывает)))
1
tibeg
0 / 0 / 0
Регистрация: 01.08.2013
Сообщений: 103
17.03.2014, 23:34  [ТС] #19
Простите пожалуйста, но помогите еще раз)
Написал программу которая меняет в матрице размера m*n строки и столбцы местами.
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
#include <iostream>
 
using namespace std;
 
int main()
{
    int i,j,a[3][3], b[3][3];
 
    for(i=0;i<3;i++)
    {
        for (j=0;j<3;j++)
        {
            cout << "[" << i+1 << "]" << "[" << j+1 << "]:";
            cin >> a[i][j];
        }
    cout << "\n";
 
    }
 
    cout <<"\nVasha matrica: \n";
    
    for(i=0;i<3;i++)
    {
        for (j=0;j<3;j++)
        {
            
            cout << a[i][j];
        }
        cout <<"\n";
    }
 
    for(j=0;j<3;j++)
    {
        for(i=0;i<3;i++)
            b[j][i]=a[i][j];
    }
 
     cout <<"\n";
 
     for(j=0;j<3;j++)
      {
        for(i=0;i<3;i++)
        {
            cout << b[j][i];
        }
        cout << "\n";
      }
    
return 0;
}

А как сделать так, чтобы размер матрицы задавал пользователь вот попытался, но ничего не выходит

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
#include <iostream>
 
using namespace std;
 
int main()
{
        
    int i,j,a[3][3], b[3][3],a,b;
        
       cout << "Zadaite razmer matrici: ";
       cin >> a >>b;
 
    for(i=0;i<a;i++)
    {
        for (j=0;j<b;j++)
        {
            cout << "[" << i+1 << "]" << "[" << j+1 << "]:";
            cin >> a[i][j];
        }
    cout << "\n";
 
    }
 
    cout <<"\nVasha matrica: \n";
    
    for(i=0;i<a;i++)
    {
        for (j=0;j<b;j++)
        {
            
            cout << a[i][j];
        }
        cout <<"\n";
    }
 
    for(j=0;j<a;j++)
    {
        for(i=0;i<b;i++)
            b[j][i]=a[i][j];
    }
 
     cout <<"\n";
 
     for(j=0;j<a;j++)
      {
        for(i=0;b<3;i++)
        {
            cout << b[j][i];
        }
        cout << "\n";
      }
    
return 0;
}
0
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
18.03.2014, 10:12 #20
Цитата Сообщение от tibeg Посмотреть сообщение
int i,j,a[3][3], b[3][3],a,b;
Ну во-первых вы объявляете a и b и как статический массив и как переменную типа int. Что уже не допустимо,а во вторых память под них должна выделяться динамически. Для двухмерных массивов память выделяется в 2 этапа: 1.Выделение памяти на массив указателей, 2.Выделение памяти на элементы. В обратной последовательности следует и освобождать. Существует несколько способов основными из которых являются конструкции типа: new/delete, malloc(calloc)/free. Существуют и другие способы (например отображение файлов в память), но они более специфичны и Вам пока туда не надо лезть. Конструкция malloc(calloc)/free перешла из Си, в то время как new/delete - это чистый С++. Основное отличие является то, что new/delete при создании и освобождении вызывает конструкторы/диструкторы объектов (если таковые есть. Malloc и calloc просто выделяют память на объект (calloc еще присваивает 0 объектам), поэтому их нельзя путать (new/delete и malloc(calloc)/free).
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
#include <iostream>
 
using namespace std;
 
int main()
{
        
    int i,j,**a, **b,a_с,b_с;
        
       cout << "Zadaite razmer matrici: ";
       cin >> a_с >>b_с;
       a=new int*[a_c];
       b=new int*[a_c];
    for(i=0;i<a_с;i++)
    {
     a[i]=new int[b_c];
     b[i]=new int[b_c];
    }
    for(i=0;i<a_с;i++)
    {
        for (j=0;j<b_с;j++)
        {
            cout << "[" << i+1 << "]" << "[" << j+1 << "]:";
            cin >> a[i][j];
        }
    cout << "\n";
 
    }
 
    cout <<"\nVasha matrica: \n";
    
    for(i=0;i<a_с;i++)
    {
        for (j=0;j<b_с;j++)
        {
            
            cout << a[i][j];
        }
        cout <<"\n";
    }
 
    for(j=0;j<a_с;j++)
    {
        for(i=0;i<b_с;i++)
            b[j][i]=a[i][j];
    }
 
     cout <<"\n";
 
     for(j=0;j<a_с;j++)
      {
        for(i=0;i<b_c;i++)
        {
            cout << b[j][i];
        }
        cout << "\n";
      }
    for(i=0;i<a_с;i++)
    {
     delete [] a[i];
     delete [] b[i];
    }
     delete [] a;
     delete [] b;
return 0;
}
второй вариант:
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
#include <iostream>
 
using namespace std;
 
int main()
{
        
    int i,j,**a, **b,a_с,b_с;
        
       cout << "Zadaite razmer matrici: ";
       cin >> a_с >>b_с;
       a=(int*) malloc(a_c*sizeof(int*));
       b=(int*) malloc(a_c*sizeof(int*));
    for(i=0;i<a_с;i++)
    {
     a[i]=(int) malloc(b_c*sizeof(int));
     b[i]=(int) malloc(b_c*sizeof(int));
    }
  
...........
 
    for(i=0;i<a_с;i++)
    {
     free (a[i]);
     free (b[i]);
    }
     free(a);
     free( b);
return 0;
}
Добавлено через 1 час 43 минуты
Во только в ваше случае правильнее так:
C++
1
2
3
4
5
6
7
8
9
10
11
       a=new int*[a_c];
       b=new int*[b_c];
    for(i=0;i<a_с;i++)   a[i]=new int[b_c];
     for(i=0;i<b_с;i++)  b[i]=new int[a_c];
....
for(i=0;i<a_с;i++)   delete [] a[i];
for(i=0;i<b_с;i++)  delete []b[i];
delete [] a;
delete [] b;
 
    }
Аналогично и с malloc, простите не посмотрел сразу внимательно что вы хотите. А те примеры допустимы только для квадратных матриц...
1
tibeg
0 / 0 / 0
Регистрация: 01.08.2013
Сообщений: 103
18.03.2014, 16:06  [ТС] #21
Вы бы не могли посмортеть этот код? Уже час пытаюсь найти ошибку, но ну получается!
Найти наименьший элемент матрицы X (mn) и записать нули в ту строку и столбец, где он находится
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
#include <iostream>
 
using namespace std;
 
int main()
{
    int a[3][3],b[3][3],i,j,max,srav,stroka,stolbec;
 
    for(i=0;i<3;i++)
    {
        for(j=0;j<3;j++)
        {
            cout << "Vvedite [" << i+1 <<"]" << "[" << j+1 <<"] element: ";
            cin >> a[i][j];
        }
    }
 
    cout <<"\nVasha matrica:\n";
 
    for(i=0;i<3;i++)
    {
        for(j=0;j<3;j++)
        { 
            cout << a[i][j] << " ";
        }
    cout << "\n";
    }
 
    srav=a[0][0];
 
    for(i=0;i<3;i++)
    {
        for(j=0;j<3;j++)
        { 
            if (a[i][j]<=srav)
                max=srav;
                stroka=i;
                stolbec=j;
        }
    }
 
    for(i=0;i<3;i++)
    {
        for(j=0;i<3;j++)
        {
            if ( (i==stroka)||(j==stolbec) )
                b[i][j]=0;
 
            else
                b[i][j]=a[i][j];
        }
    }
 
    for(i=0;i<3;i++)
    {
        for(j=0;i<3;j++)
        {
            cout << b[i][j] << " ";
 
        }
        cout << "\n";
    }
 
return 0;
}
0
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
18.03.2014, 17:04 #22
tibeg, Помогу, но вы с огнем играете, правилами форума ограничено 1 вопрос -1 тема! Не бойтесь создавать новые темы, а иначе модераторы по голове не погладят
3 ошибки у вас
1 строки 36...38 надо взять в { } иначе по условию ищется лишь минимум (а строка и столбец всегда меняются и в итоге последними третьи выводятся)
2 строки 44 и 56 перепутаны в условиях циклах переменные i и j перепутаны: злую шутку иногда играет copy/paste, а i и j по написанию похожи не так то просто увидеть....
Вот исправленный код:
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
#include <iostream>
 
using namespace std;
 
int main()
{
    int a[3][3],b[3][3],i,j,max,srav,stroka,stolbec;
 
    for(i=0;i<3;i++)
    {
        for(j=0;j<3;j++)
        {
            cout << "Vvedite [" << i+1 <<"]" << "[" << j+1 <<"] element: ";
            cin >> a[i][j];
        }
    }
 
    cout <<"\nVasha matrica:\n";
 
    for(i=0;i<3;i++)
    {
        for(j=0;j<3;j++)
        { 
            cout << a[i][j] << " ";
        }
    cout << "\n";
    }
 
    srav=a[0][0];
 
    for(i=0;i<3;i++)
    {
        for(j=0;j<3;j++)
        { 
            if (a[i][j]<=srav)
            {
 
                max=srav;
                stroka=i;
                stolbec=j;
            }
        }
    }
 
    for(i=0;i<3;i++)
    {
        for(j=0;j<3;j++)
        {
            if ( (i==stroka)||(j==stolbec) )
                b[i][j]=0;
            else
                b[i][j]=a[i][j];
        }
    }
 
    for(i=0;i<3;i++)
    {
        for(j=0;j<3;j++)
        {
            cout << b[i][j] << " ";
 
        }
        cout << "\n";
    }
 system("Pause");
return 0;
}
Добавлено через 44 минуты
Не большая не точность строка 35 правильнее:
C++
1
if (a[i][j]<srav)
1
18.03.2014, 17:04
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.03.2014, 17:04
Привет! Вот еще темы с ответами:

Найти ошибку в программе - C++
Решаю задачу: Вот мой код: #include &lt;iostream&gt; #include &lt;windows.h&gt; using namespace std; int main()

найти ошибку в программе - C++
Сортировка вещественных чисел из файла методом пузырька #include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; void...

Найти ошибку в программе - C++
Найти ошибку в программе(связано с неправильным использованием указателя). Как можно исправить ошибку? #include &lt;iostream&gt; using...

Найти ошибку в программе - C++
Где ошибка в программе: #include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; #include &quot;conio.h&quot; #include &quot;string&quot; ...


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

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

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