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

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

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

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

25.12.2013, 13:09. Просмотров 203. Ответов 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;
}
Миниатюры
Функция, где ошибка?  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.12.2013, 13:09     Функция, где ошибка?
Посмотрите здесь:

Функция. Где здесь ошибка? - 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) { ...

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

Вычислить 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++
Помогите пожалуйста очень срочно надо.. Не могли бы посмотреть правильно ли задача и расписать что она делает. Найти точку, в которой...

Где ошибка? - C++
Прошу помочь, очень мало времени! Я новичок. #include &quot;stdafx.h&quot; #include &lt;clocale&gt; #include &lt;iostream&gt; #include &lt;fstream&gt; ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dzrkot
zzzZZZ...
519 / 349 / 53
Регистрация: 11.09.2013
Сообщений: 1,996
25.12.2013, 13:15     Функция, где ошибка? #2
Цитата Сообщение от hhhhhh Посмотреть сообщение
if (temp[j] > temp[k])
перед этим temp объявлен но не определён
hhhhhh
0 / 0 / 0
Регистрация: 12.12.2013
Сообщений: 20
25.12.2013, 13:49  [ТС]     Функция, где ошибка? #3
То есть, нахождение temp мы тоже вносим в функцию
dzrkot
zzzZZZ...
519 / 349 / 53
Регистрация: 11.09.2013
Сообщений: 1,996
25.12.2013, 13:55     Функция, где ошибка? #4
Цитата Сообщение от hhhhhh Посмотреть сообщение
То есть, нахождение temp мы тоже вносим в функцию
ну подумайте...
У вас в main есть temp[100] , а в функции вы снова объявляете int temp[100] - этоуже совершенно другой массив, но с тем же названием, и этот temp вы как-то начинаете сортировать, хотя данных в нём нету(точнее там мусор, который был в памяти до объявления этого локального массива)...Мб у вас ещё какие-то ошибки, я не запускал вашу прогу)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.12.2013, 14:35     Функция, где ошибка?
Еще ссылки по теме:

Где ОШИБКА? - C++
есть программа которая выводит массив рандомных чисел, (размерность массива:200, диапазон значений: 0-100 ) и подсчитывает количество...

Где ошибка? - C++
Добрый вечер всем.По заданию нужно было вывести текст в кавычках на экран.Препод сказал чтобы ответ выводился в файл.Вроде все правильно...

Где ошибка? - C++
Компилятор ругается и очень больно #include &quot;stdafx.h&quot; #include&lt;stdio.h&gt; #include&lt;math.h&gt; int _tmain(int argc, _TCHAR* argv) ...

Где ошибка? - C++
Почему не вводятся имя, фамилия и возраст? Первые 3 пользователя вводятся. Четвертый не вводится Enter first name, last name and age...

где ошибка - C++
#include &lt;iostream&gt; using namespace std; int main() { long p, k; cin &gt;&gt; p &gt;&gt; k; for (int i = 0; i &lt; k; i++) { ...

Где Ошибка - C++
int main() { setlocale(LC_ALL, &quot;Russian&quot;); int a,k,t,i,j; cout&lt;&lt;&quot;Введите количество элементов &quot;; cin&gt;&gt;k; for(i=0; i&lt;k;...


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

Или воспользуйтесь поиском по форуму:
hhhhhh
0 / 0 / 0
Регистрация: 12.12.2013
Сообщений: 20
25.12.2013, 14:35  [ТС]     Функция, где ошибка? #5
Спасибо,я описала нахождение temp в самой функции, теперь сортирует.

Добавлено через 31 минуту
Можете пожалуйста подсказать, как найти сумму строк, номера которых задаются целочисленным вектором?
Yandex
Объявления
25.12.2013, 14:35     Функция, где ошибка?
Ответ Создать тему
Опции темы

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