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

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

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

Функция, где ошибка? - C++

25.12.2013, 13:09. Просмотров 214. Ответов 4
Метки нет (Все метки)

После добавления сортировки через функцию, она перестала работать( сортировка по возрастанию сумм столбцов)




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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
// ConsoleApplication13.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include "iostream";
#include <stdio.h>
#include <conio.h>
#include <string>
#include <iomanip> // Отвечает за форматированный ввод -  вывод
using namespace std;
 
 
void perestanovka(double **a, int n, int m)
{
    int i, j, k, h;
    int temp[100];
    // Сортируем методом выбора.
 
    for (j = 0; j < m; j++)
    {
        for (k = j + 1; k < m; k++)
        {
 
            if (temp[j] > temp[k])      // По условию: сортировка происходит по возрастанию сумм столбцов
            {
 
                h = temp[j];
 
                temp[j] = temp[k];           // Заменяем значения исходного массива на новый, для дальнейшего использования при сортировки
 
                temp[k] = h;
 
                for (i = 0; i < n; i++)
                {
 
                    h = a[i][j];                       //Переставляем столбцы  по возрастанию сумм
 
                    a[i][j] = a[i][k];
 
                    a[i][k] = h;
 
                }
            }
        }
    }
 
 
}
 
int _tmain(int argc, _TCHAR* argv[])
{
 
    double **a;   // Использование динамической матрицы
    int  n, m, temp[100];
    int i, j,k,h;
 
    // Пусть матрица вводиться вручную с клавиатуры.
 
 
 
    cout << " Vvedite kolichestvo strok n= \n";
    cin >> n;                                            //ввод количества строк с клавиатуры.
    cout << "Vvedite kolichestvo stolbchov m=\n";
    cin >> m;                                         //ввод количества столбцов с клавиатуры.
    cout << "\n";
 
    cout << "\n\n Vvdodim postrochno cheres probel \t";
    cout << "\n";
    a = new double*[n];
    for (i = 0; i < n; i++)                               //цикл для вывода матрицы на экран
    { 
        cout << ">\t";
        a[i] = new double[m];
        for (j = 0; j < m; j++)
            cin >> a[i][j];
    }
    cout << "\n";
    cout << "Kontrolnai matricha:\n";
    for (i = 0; i < n; i++)
    {
        for (j = 0; j < m; j++)
            cout << setw(5) << a[i][j];
        cout << "\n";
    }
    // Находим суммы элементов столбцов
    for (j = 0; j < m; j++)
    {
        for (i = 0; i < n; i++)
            temp[j] += a[i][j];            // Записываем  дополнительный массив для суммы столбцов данной матрицы
 
    }
    cout << "\n";
perestanovka(a, i, j);
 
    
    
 
 
    // Печатаем отсортированую матрицу.
 
    cout << "Otsortirovannai matrich:\n";
    for (i = 0; i < n; i++)
    {
        for (j = 0; j < m; j++)
        {
 
            cout << a[i][j] << "\t";
 
        }
        cout << "\n";
    }
 
    cout << "\n" << "\n";
 
 
    for (j = 0; j < 100; j++)            // Обнуляем дополнительный массив
 
        temp[j] = 0;
 
    // Находим сумму элементов строк отсортированного массива
 
    cout << "Summa elementov strok:\n";
 
    for (i = 0; i < n; i++)
    {
        for (j = 0; j < m; j++)
 
            temp[i] += a[i][j];
 
        cout << temp[i] << "\t";    // Печатаем сумму в виде одномерной матрицы.
 
    } 
 
    _getch();
    return 0;
}
0
Миниатюры
Функция, где ошибка?  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.12.2013, 13:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Функция, где ошибка? (C++):

Функция. Где здесь ошибка? - C++
using namespace std; int main () { float x,y,z; cout &lt;&lt;&quot;x=&quot;; cin &gt;&gt;x; cout &lt;&lt;&quot;y=&quot;; cin &gt;&gt;y; ...

Где ошибка?Функция, принимающая указатель на двумерный массив и рандом чисел - C++
#include &lt;iostream&gt; #include &lt;cstdlib&gt; #include &lt;ctime&gt; using namespace std; void arrprint(float* arr, int m, int n) { ...

Объясните, где задается функция, где расчитывается и как она называется - C++
Объясните где задается функция, где расчитывается и как она называется.заранее спасибо #include &lt;iostream&gt; #include &lt;stdio.h&gt; ...

Вывести на экран количество слов где первая и последняя буквы одинаковы (не понимаю где ошибка) - C++
задан текст нужно вывести на экран количество слов где первая и последняя буквы одинаковы #include &lt;iostream&gt; #include &lt;conio.h&gt; ...

Подскажите, где может быть ошибка (структуры)? (скорее всего где-то амперсенд нужен, все вроде проверил) - C++
написать универсальный тип, который представляет точку на плоскости в координатах (х, у) и в полярных координатах. Написать функцию для...

Где определяется функция narrow_cast? - C++
Всем привет , скажите пожлст какая библиотека определяет функцию narrow_cast. Взорвал гугл , но не успешно. Юзаю vs 2015. Она есть в...

4
dzrkot
zzzZZZ...
523 / 353 / 54
Регистрация: 11.09.2013
Сообщений: 2,037
25.12.2013, 13:15 #2
Цитата Сообщение от hhhhhh Посмотреть сообщение
if (temp[j] > temp[k])
перед этим temp объявлен но не определён
0
hhhhhh
0 / 0 / 0
Регистрация: 12.12.2013
Сообщений: 20
25.12.2013, 13:49  [ТС] #3
То есть, нахождение temp мы тоже вносим в функцию
0
dzrkot
zzzZZZ...
523 / 353 / 54
Регистрация: 11.09.2013
Сообщений: 2,037
25.12.2013, 13:55 #4
Цитата Сообщение от hhhhhh Посмотреть сообщение
То есть, нахождение temp мы тоже вносим в функцию
ну подумайте...
У вас в main есть temp[100] , а в функции вы снова объявляете int temp[100] - этоуже совершенно другой массив, но с тем же названием, и этот temp вы как-то начинаете сортировать, хотя данных в нём нету(точнее там мусор, который был в памяти до объявления этого локального массива)...Мб у вас ещё какие-то ошибки, я не запускал вашу прогу)
0
hhhhhh
0 / 0 / 0
Регистрация: 12.12.2013
Сообщений: 20
25.12.2013, 14:35  [ТС] #5
Спасибо,я описала нахождение temp в самой функции, теперь сортирует.

Добавлено через 31 минуту
Можете пожалуйста подсказать, как найти сумму строк, номера которых задаются целочисленным вектором?
0
25.12.2013, 14:35
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.12.2013, 14:35
Привет! Вот еще темы с ответами:

Укажите где ошибка (ошибка во время выполнения программы) - C++
Здравствуйте, помогите пожалуйста найти ошибки в коде которые возникаю при выполнении программы Картинка с ошибкой внизу поста. Код: ...

Ошибка при компиляции. Где ошибка? (Работа с классом) - C++
Уважаемые форумчане! При компиляции проекта возникает ошибка &quot; undefined reference to `MeterNZiF::MeterNZiF()' &quot; на 7 строку приложения. ...

Вычислить f(a),где f-периодическая функция с периодом 1.5 совпадающая на отрезке [0.1,5] с функцией x*x*x-2.25x - C++
Дано действительное число а.Вычислить f(a),где f-периодическая функция с периодом 1.5 совпадающая на отрезке с функцией x*x*x-2.25x

Найти, где функция Y=3sin(x+5) на отрезке [-5; 3] имеет минимальное отклонение от среднего арифметического - C++
Помогите пожалуйста очень срочно надо.. Не могли бы посмотреть правильно ли задача и расписать что она делает. Найти точку, в которой...


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

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

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