Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Ошибка кода https://www.cyberforum.ru/ cpp-beginners/ thread897977.html
Имеется код из файла формата .cpp Когда имеющийся код копирую в проект, с++ выделяет строчку fscanf(InFile, "%f", &x); Нашел пример как исправить - int fscanf ( FILE * stream, const char * format, ... ); Написал это - int fscanf(FILE * stream, const char * format, &x); Но с++ ругается на &x (Error: требуется спецификатор типа). Помогите, что ему надо? Список библиотек #include...
C++ Использование Timsort
Задача:отсортировать массив Тимсортом, нашел код но при применении выдает ошибку "Ошибка 9 error C2664: tim_sort: невозможно преобразовать параметр 1 из "int " в "std::vector<_Ty> &" void tim_sort(vector<int> &mas) { int n = mas.size(); vector<int> tmp(n); int min_size = get_min_size(n); int beg = 0, size = min_size; vector<segment> seg; ...
C++ Блок-схема!( Ребят помогите пожалуйста построить блок-схему по программе с комментариями: #include <graphics.h> #include <dos.h> void main(void) { //переменные для вычисления масштабов по осям координат float kx,ky,ku; //переменные для графики и циклов https://www.cyberforum.ru/ cpp-beginners/ thread897960.html C++ Квадратное уравнение https://www.cyberforum.ru/ cpp-beginners/ thread897947.html
Недавно начал изучать язык и по мере прочтения книги решил порешать задачи. Сначала все было хорошо, но когда дошел до квадратного уравнения, столкнулся с проблемой. Вот код : // kvur.cpp -- решает квадратное уравнение. #include <iostream> #include <cmath> using namespace std; int main() { double a, b, c, D, X1, X2;
C++ блок схеме
помогите построить блок схему к этой программе #include <iostream> using namespace std; int main() { int min, max, sr = min = max = 0; int A = 0, B = 0, C = 0; cin >> A >> B >> C; if (A < B && A < C) {
C++ Создание exe файла https://www.cyberforum.ru/ cpp-beginners/ thread897939.html
У меня есть консольное приложение, и чтобы его запустить я захожу в Visual Studio 2010 выбираю проект и жму f5. Как мне сделать exe файл чтобы я могу сразу запустить и мне не нужно было идти в Visual Studio для запуска приложения ?
C++ Перегрузка функций и операторов https://www.cyberforum.ru/ cpp-beginners/ thread897931.html
Люди добрые помогите пожалуйста! необходимо написпть программы на С++ а) Создать класс 2-D координат. Определить операторы "+" и "-" как дружественные функции, а операторы присваивания и сравнения как методы класса. Должны быть возможность осуществления операций, как между координатами, так и между координатами и обычными числами. b) Создать класс List - очередь. Определить операторы "+" –...
Файлы. Определить, есть ли в наличии книга "Информатика" за 1990 год C++
Задан файл, который содержит информацию о книгах (фамилия, название, год издания). Определить, есть ли в наличии книга "Информатика" за 1990 год. Если да, то вывести фамилию автора, если несколько, то вывести полную информацию обо всех эти книги.
C++ Построить класс для работы со списком, который содержит динамическую информацию о наличии автобусов в парке Люди добрые помогите пожалуйста! неоходимо написать программу на С++: Построить класс для работы со списком, который содержит динамическую информацию о наличии автобусов в парке: номер автобуса, фамилию и инициалы водителя, номер маршрута, признак местонахождения автобуса – на маршруте или в парке. Программа должна обеспечивать: начальное формирование списка, введение ... https://www.cyberforum.ru/ cpp-beginners/ thread897916.html C++ Любой тип переменной https://www.cyberforum.ru/ cpp-beginners/ thread897909.html
Как указать переменной что тип неопределён? Допустим: struct STRUCTa{ short v1,v2; } struct STRUCTb{ float v1,v2; } struct complex{
ошибка в меню C++
#include "stdafx.h" #include <cmath> #include "locale.h" #include "conio.h" #include <fstream> #include <iostream> using namespace std; int caas(void) //ввод количества {
C++ Нужно написать словесный алгоритм! #include <iostream> using namespace std; void rotateMatrix(double **matrix, int &rows, int &cols, int rotate_count) { double temp; int min; for (int r = 0; r < rotate_count; r++) { if (rows == cols) min = rows; https://www.cyberforum.ru/ cpp-beginners/ thread897880.html
415 / 411 / 95
Регистрация: 06.10.2011
Сообщений: 832
12.06.2013, 00:31 0

Возврат ссылки - C++ - Ответ 4707453

12.06.2013, 00:31. Показов 773. Ответов 1
Метки (Все метки)

Ответ

Поверьте, с указателями у вас тоже большие трудности.
Это вот что такое?
C++
1
cout<<"Максимальный элемент массива равен="<<maxx(M,x,y)[0] //бред и утечка памяти
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
double *maxx(double** M,int x,int y)
{
 
double *M2=new double[3];
M2[0]=M[0][0];
 
 
for (int i=0;i<x;i++)
    for (int j=0;j<y;j++)
        if (M2[0]<=M[i][j]) 
        {
            M2[0]=M[i][j];
            M2[1]=i;
            M2[2]=j;
        }
 
return M2;
}
Вот исправленный вариант:
Кликните здесь для просмотра всего текста
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
#include <iostream>
using namespace std;
 
pair<int, int>* min_element(double** M, int x, int y)
{
    pair<int, int> *min = new pair<int, int>(0, 0);
    for (int i = 0; i != x; ++i)
        for (int j = 0; j != y; ++j)
            if ( M[i][j] < M[min->first][min->second] )
                *min = {i, j};
    return min;
}
 
pair<int, int> *max_element(double** M, int x, int y)
{
    pair<int, int> *max = new pair<int, int>(0, 0);
    for (int i = 0; i != x; ++i)
        for (int j = 0; j != y; ++j)
            if ( M[i][j] > M[max->first][max->second] )
                *max = {i, j};
    return max;
}
 
pair<int, int> *first_negative(double** M,int x,int y)
{
    pair<int, int> *first_neg = new pair<int, int>(-1, -1);
    for (int i = 0; i != x; ++i)
        for (int j = 0; j != y; ++j)
            if ( M[i][j] < 0 ) {
                *first_neg = {i, j};
                break;
            }
    return first_neg;
}
 
int main()
{
    setlocale(0,"rus");
    int x, y;
    cout<<"Введите размерность массива:";
    cin >> x >> y;
 
    double **M = new double*[x];
 
    for (int i = 0; i != x; ++i)
        M[i] = new double[y];
 
    cout<<"Введите массив:"<<endl;
 
    for (int i = 0; i != x; ++i)
        for (int j = 0; j != y; ++j) {
            cout << "[" << i << ", " << j << "]: ";
            cin >> M[i][j];
        }
 
    pair<int, int> *min = min_element(M, x, y);
 
    cout << "Минимальный элемент массива равен=" << M[min->first][min->second]
        << ", с индексом: [" << min->first << "][" << min->second << "]\n";
 
    pair<int, int> *max = max_element(M, x, y);
 
    cout << "Максимальный элемент массива равен=" << M[max->first][max->second]
        << ", с индексом: [" << max->first << "][" << max->second << "]\n";
 
    pair<int, int> *first_neg = first_negative(M, x, y);
    if (first_neg->first == -1)
        cout << "В данном массиве нет отрицательных элементов." << endl;
    else
        cout << "Индекс первого отрицательно элемента массива равен: ["
             << first_neg->first << "][" << first_neg->second << "]." << endl;
 
    for (int i = 0; i != x; ++i) delete[] M[i];
    delete[] M;
    delete min;
    delete max;
    delete first_neg;
 
    system("pause");
    return 0;
}


Добавлено через 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
#include <iostream>
using namespace std;
 
pair<int, int>& min_element(double** M, int x, int y)
{
    pair<int, int> *min = new pair<int, int>(0, 0);
    for (int i = 0; i != x; ++i)
        for (int j = 0; j != y; ++j)
            if ( M[i][j] < M[min->first][min->second] )
                *min = {i, j};
    return *min;
}
 
pair<int, int>& max_element(double** M, int x, int y)
{
    pair<int, int> *max = new pair<int, int>(0, 0);
    for (int i = 0; i != x; ++i)
        for (int j = 0; j != y; ++j)
            if ( M[i][j] > M[max->first][max->second] )
                *max = {i, j};
    return *max;
}
 
pair<int, int>& first_negative(double** M,int x,int y)
{
    pair<int, int> *first_neg = new pair<int, int>(-1, -1);
    for (int i = 0; i != x; ++i)
        for (int j = 0; j != y; ++j)
            if ( M[i][j] < 0 ) {
                *first_neg = {i, j};
                break;
            }
    return *first_neg;
}
 
int main()
{
    setlocale(0,"rus");
    int x, y;
    cout<<"Введите размерность массива:";
    cin >> x >> y;
 
    double **M = new double*[x];
 
    for (int i = 0; i != x; ++i)
        M[i] = new double[y];
 
    cout<<"Введите массив:"<<endl;
 
    for (int i = 0; i != x; ++i)
        for (int j = 0; j != y; ++j) {
            cout << "[" << i << ", " << j << "]: ";
            cin >> M[i][j];
        }
 
    pair<int, int> &min = min_element(M, x, y);
 
    cout << "Минимальный элемент массива равен=" << M[min.first][min.second]
        << ", с индексом: [" << min.first << "][" << min.second << "]\n";
 
    pair<int, int> &max = max_element(M, x, y);
 
    cout << "Максимальный элемент массива равен=" << M[max.first][max.second]
        << ", с индексом: [" << max.first << "][" << max.second << "]\n";
 
    pair<int, int> &first_neg = first_negative(M, x, y);
    if (first_neg.first == -1)
        cout << "В данном массиве нет отрицательных элементов." << endl;
    else
        cout << "Индекс первого отрицательно элемента массива равен: ["
             << first_neg.first << "][" << first_neg.second << "]." << endl;
 
    for (int i = 0; i != x; ++i) delete[] M[i];
    delete[] M;
    delete &min;
    delete &max;
    delete &first_neg;
 
    system("pause");
    return 0;
}


Вернуться к обсуждению:
Возврат ссылки C++
1
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.06.2013, 00:31
Готовые ответы и решения:

Возврат ссылки
int &amp; function(int); Понятно для чего передают аргументы в функцию как указатели или ссылки.Но...

Возврат r-ссылки
Здравствуйте У меня вопрос, не могу понять почему так происходит Знаю, это бессмысленный код, он...

Возврат ссылки из метода
Доброго времени суток! Дано: структура: struct Point { float x; float y; float z; };...

Возврат ссылки из функции
Изучаю С++, знаю С. Вот такой простенький вопросик есть. В чем вообще разница: class Str {...

1
12.06.2013, 00:31
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.06.2013, 00:31
Помогаю со студенческими работами здесь

Возврат ссылки на функцию.
Здравствуйте, можете пожалуйста объяснить чем отличается когда функция создается просто каким то...

Возврат константной ссылки из функции
Можно ли из функции возвращать константную ссылку? Есть след. классы: class A { /*чтото тяжёлое,...

Возврат ссылки на локальную переменную
Привет, есть такой код: int*&amp; change(void) { int* x(new int(50)); return x; } int...

Возврат ссылки на указатель из функции
#include &lt;iostream&gt; int*&amp; getPtrRef(int*&amp; ref) { int*&amp; cpy = ref; std::cout &lt;&lt; &amp;ref...

Создание ссылки и возврат из функции
Есть вот такая функция, возвращает максимальный элемент. template &lt;typename Type&gt; inline const...

Не работает возврат ссылки на объект
Есть простой класс с двумя полями и одним методом, который печатает их. Функция generate() создаёт...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru