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

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

Войти
Регистрация
Восстановить пароль
 
kinoman471
4 / 4 / 0
Регистрация: 18.04.2012
Сообщений: 58
#1

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

10.06.2012, 09:52. Просмотров 426. Ответов 12
Метки нет (Все метки)

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
#include <iostream>
#include <cmath>
#define N = 3
using namespace std;
void vvodMatr(int a[][N], int n)
int poiskMax (int a[][N], int n)
void perestanovka(int a[][N], int n)
void print(int a[][N], int n)
int main()
{
    const int n = N;
    double a[n][n];
    vvodMatr(a,n);
    poiskMax(a,n);
    perestanovka(a,n);
    print(a,n);
    return 0;
}
void vvodMatr(int a[][N], int n)
 {
 int i,j;
 cout <<"Matriza a("<< n << "*" << n << "):" <<endl;
    for(i = 0; i < n; i++)
       {for(j = 0; j < n; j++)
          cin >> a[i][j];
       }
 }
 int poiskMax (int a[][N], int n)
 {
     int c,b,i,j;
     max = fabs(a[0][0]);
    for(i = 0; i < n; i++)
       for(j = 0; j < n; j++)
          {if(fabs(a[i][j]) > max)
             {max = fabs(a[i][j]);
             c = i;
             b = j;
             }
             return c;
             return b;
 }
 void perestanovka(int a[][N], int n])
 {
     int i,j,c,b;
      for (i = 0; i < n; i++)
    {
        int u = a[i][0];
        a[i][0] = a[i][b];
        a[i][b] = u;
    }
     for(j=0;j<n;j++){
         int u = a[0][j];
        a[0][j] = a[c][j];
        a[c][j] = u;
    }
 }
 void print(int a[][N], int n)
 {
     int i,j;
     for(int i=0;i<n;i++){
        for(int j=0;j<n;j++)
            cout<<a[i][j]<<"   ";
        cout<<endl;
 }
Ошибка в 5 и 19 строках . Не могу найти
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.06.2012, 09:52
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не могу найти ошибку (C++):

Найти слова, повторяющиеся более одного раза, не могу найти ошибку - C++
#include &lt;iostream&gt; using namespace std; void obr1(char **s, char **mas, int n, int m) { int i; int k; char *tm; for(i...

Массивы. Посчитать количество положительных, найти минимальное, удалить строку с минимальным (Не могу найти ошибку) - C++
// Заданы матрицы X(8;4),Y(5;5),Z(6;9). // Для каждой из матриц определить строку, в которой находится наименьшее // количество...

Не могу найти ошибку - C++
ошибка в строке 24..не могу исправить. Помогите, пожалуйста. #include &lt;math.h&gt; #include &lt;stdio.h&gt; #include &lt;iostream&gt; using...

Не могу найти ошибку - C++
Кусок программы. Нужно найти в файле необходимую услугу и записать её номер. У строки searching уже есть значение. Пример строки: Cвязь...

не могу найти ошибку! - C++
почему в typePlane вместо значения, которое вводит пользователь, выводит какое-то большое значение из цифр и букв? #include&lt;iostream&gt; ...

Не могу найти ошибку - C++
В общем написал программу , только не понимаю ошибок

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Jtalk
93 / 79 / 4
Регистрация: 13.05.2011
Сообщений: 279
10.06.2012, 10:11 #2
Прототипы функций должны заканчиваться ;
1
kinoman471
4 / 4 / 0
Регистрация: 18.04.2012
Сообщений: 58
10.06.2012, 10:14  [ТС] #3
Теперь ошибки в 5,6,7,8,11,19 строках.
В чем проблема?
0
dimcoder
Полярный
462 / 434 / 68
Регистрация: 11.09.2011
Сообщений: 1,135
10.06.2012, 10:16 #4
Функции принимают int, а передаются double. 12 строка.

+

в функции poiskMax
C++
1
2
             return c;
             return b;
непорядок
1
kinoman471
4 / 4 / 0
Регистрация: 18.04.2012
Сообщений: 58
10.06.2012, 10:19  [ТС] #5
Исправил на int. Но ошибки все равно есть

Добавлено через 38 секунд
Цитата Сообщение от dimcoder Посмотреть сообщение
в функции poiskMaxКод C++
1
2 return c;
return b;
непорядок
Как надо?
0
dimcoder
Полярный
462 / 434 / 68
Регистрация: 11.09.2011
Сообщений: 1,135
10.06.2012, 10:20 #6
В 42 строке лишняя квадратная скобка.
Цитата Сообщение от kinoman471 Посмотреть сообщение
Как надо?
Просто возвращается только одно значение, в данном случае c.
1
kinoman471
4 / 4 / 0
Регистрация: 18.04.2012
Сообщений: 58
10.06.2012, 10:22  [ТС] #7
Цитата Сообщение от dimcoder Посмотреть сообщение
В 42 строке лишняя квадратная скобка.
Это я уже исправил. Как из функции вернуть 2 числа?
0
dimcoder
Полярный
462 / 434 / 68
Регистрация: 11.09.2011
Сообщений: 1,135
10.06.2012, 10:28 #8
Цитата Сообщение от kinoman471 Посмотреть сообщение
Как из функции вернуть 2 числа?
Никак. Но есть варианты:
1) Передать в функцию по ссылке или указателю 2 числа, в функции их изменить как надо, и возвращаеть ничего не надо.
2) Передать туда же массив и его изменить

А лучше дай задание.
1
Jtalk
93 / 79 / 4
Регистрация: 13.05.2011
Сообщений: 279
10.06.2012, 10:29 #9
Цитата Сообщение от kinoman471 Посмотреть сообщение
Это я уже исправил. Как из функции вернуть 2 числа?
Передать аргумент по ссылке и записать в него, или вернуть структуру. В C++ есть std:air.
1
kinoman471
4 / 4 / 0
Регистрация: 18.04.2012
Сообщений: 58
10.06.2012, 10:30  [ТС] #10
Вот задача:
Задана квадратная матрица. Найти максимальный по модулю элемент матрицы. Перестановкой строк и столбцов перевести этот элемент в верхний левый угол матрицы.
0
dimcoder
Полярный
462 / 434 / 68
Регистрация: 11.09.2011
Сообщений: 1,135
10.06.2012, 10:47 #11
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
#include <iostream>
#include <cmath>
const int N = 3;
 
using namespace std;
 
void vvodMatr(int a[][N]);
void poiskMax (int a[][N], int&, int&);
void perestanovka(int a[][N], int, int);
void print(int a[][N]);
 
int main()
{
    int a[N][N];
    int maxX, maxY;
    vvodMatr(a);
    poiskMax(a, maxX, maxY);
    perestanovka(a, maxX, maxY);
    cout << endl;
    print(a);
    system("PAUSE > NULL");
    return 0;
}
 
void vvodMatr(int a[N][N])
{
    for (int i = 0; i < N; i++)
        for (int j = 0; j < N; j++)
            cin >> a[i][j];
}
 
void poiskMax(int a[N][N], int &x, int &y)
{
    x = 0;
    y = 0;
    for (int i = 0; i < N; i++)
        for (int j = 0; j < N; j++)
            if (a[i][j] > a[x][y])
            {
                x = i;
                y = j;
            }
}
 
void perestanovka(int a[N][N], int x, int y)
{
    for (int i = 0; i < N; i++)
    {
        int buf = a[0][i];
        a[0][i] = a[x][i];
        a[x][i] = buf;
    }
    //Сюда можешь вставить print(a); что бы увидеть как точно все переставляется
    for (int i = 0; i < N; i++)
    {
        int buf = a[i][0];
        a[i][0] = a[i][y];
        a[i][y] = buf;
    }
}
 
void print(int a[N][N])
{
    for (int i = 0; i < N; i++)
    {
        for (int j = 0; j < N; j++)
            cout << a[i][j] << " ";
        cout << endl;
    }
}
Будут вопросы, спрашивай.
1
kinoman471
4 / 4 / 0
Регистрация: 18.04.2012
Сообщений: 58
10.06.2012, 10:55  [ТС] #12
Спасибо. Только что означает &x. Это указатель?
0
dimcoder
Полярный
462 / 434 / 68
Регистрация: 11.09.2011
Сообщений: 1,135
10.06.2012, 11:04 #13
kinoman471, это ссылка. Здесь идет передача переменной в функцию и ты ее изменяешь там. То есть если бы ты передавал без &, то создались бы копии тех переменных, которые передаешь и изменялись бы соответственно именно копии. Почитай про указатели и ссылки.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.06.2012, 11:04
Привет! Вот еще темы с ответами:

Не могу найти ошибку - C++
Вот сама задача: Создайте свою версию библиотечной функции strcmp(s1, s2), которая срав¬нивает две строки и возвращает -1, если s1 идет...

Не могу найти ошибку... - C++
минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы. Я ввожу матрицу 1 2 3 4 5 6 7 8 9, т.е. минимум...

Не могу найти ошибку - C++
Здравствуйте,не могу понять в чем ошибка подскажите пожалуйста #include &quot;stdafx.h&quot; #include &lt;time.h&gt; #include &lt;cstdlib&gt; ...

Не могу найти ошибку - C++
Не получается вывести сформированную матрицу. Выводит с каким-то мусором. #include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; #include...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
10.06.2012, 11:04
Ответ Создать тему
Опции темы

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