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

Передача двумерного массива в функцию - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вопрос по поводу перегрузки оператора + http://www.cyberforum.ru/cpp-beginners/thread338103.html
Всем привет.Подскажите как можно перегрузить оператор + в моем классе? И что лучше вернуть из перегруженной операции +=? Объект или ссылку?Вроде и так и этак одинаково работает. (задание из книги) //#define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<string> using namespace std; #pragma warning (disable: 4996) class Str {
C++ Выход за пределы массива, обработка исключения Есть такой код, когда я вызываю функцию на вывод массив еще не инициализирован, и я хочу чтобы у меня отлавливалась ошибка, но он заходит в функцию и там вываливается... в чем беда? #include"stdafx.h" #include<iostream> #include<conio.h> #include<windows.h> using namespace std; http://www.cyberforum.ru/cpp-beginners/thread338090.html
C++ Экспорт функции из dll
Здравствуйте! Сейчас изучаю экспорты функций из dll-ок. Функцию без параметров удалось успешно экспортировать. А далее пробовал экспортировать функцию, у которой есть 2 параметра - ничего не выходит. Вот часть кода длл. extern "C" __declspec(dllexport) void summt(int, int); extern "C" __declspec(dllexport) void summt(int a, int b){ cout<<a+b<<endl; } Далее в самой программе...
Ошибка в вызове функции C++
вопрос, в чем ошибка? объявлял так int pArray и int q
C++ Метод Рунге Кута http://www.cyberforum.ru/cpp-beginners/thread338084.html
Реализовал метод Рунге Кута 4 порядка для ДУ. Работает, считает. Но есть подозрения, что неправильно. Проверьте пожалуйста. #include <cstdlib> #include <iostream> #include <math.h> using namespace std; double myfunc(const double& x, const double& y) { return 6*x*x+5*x*y+y*y+4*x+2*y-3;
C++ Перевод кодировки Всем привет! Такая задача Имеем html-код Знаем кодировку (charset) Если кодировка, отличная от UTF-8 - нужно выполнить преобразование к UTF-8 Какими способами (желательно, без использования сторонних библиотек и функционала, таких как boost, QT и т.д.) привести текст к нужной кодировке? Есть ссылка на хабрахабр с описанием - Кодировки в C++ - к сожалению, не подходит, потому что там... подробнее

Показать сообщение отдельно
Olga_
 Аватар для Olga_
840 / 182 / 16
Регистрация: 01.08.2011
Сообщений: 502
01.08.2011, 23:00     Передача двумерного массива в функцию
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
#include<stdio.h>
#include<stdlib.h>
 
/* Удаление матрицы a */
void Dispose(double **a, int m)
{
   int i;
   for (i = 0; i < m; i++)
      if (a[i] != NULL)
         free(a[i]);
   free(a);
}
 
/* выделение памяти для матрицы a */
double **Allocate(int m, int n)
{
   double **a;
   int i;
   int flag;   /* ëîãè÷åñêГ*Гї ïåðåìåГ*Г*Г*Гї */
   a = (double **)calloc(m, sizeof(double *));
   if (a != NULL)
   {
      i = 0;
      flag = 1;
      while (i < m && flag)
      {
         a[i] = (double *)calloc(n, sizeof(double));
         if (a[i] == NULL)
            flag = 0;
         else i++;
      }
      if (!flag)
      {
         Dispose(a, m);
         a = NULL;
      }
   }
   return a;
}
 
/* инициализация матрицы (ну, чтобы не вводить с клавиатуры) */
void InitArray(double **a, int m, int n)
{
   int i, j;
   for (i = 0; i < m; i++)
      for (j = 0; j < n; j++)
         a[i][j] = rand()%10;
}
 
/* Вывод на экран */
void PrintArray(double **a, int m, int n)
{
   int i, j;
   for (i = 0; i < m; i++)
   {
      for (j = 0; j < n; j++)
         printf("%.1f ", a[i][j]);
      printf("\n");
   }
}
 
/* вычисление следа матрицы */
int Track(int **a, int n)
{
    int i, sum = 0;
    for (i = 0; i < n; i++)
       sum += a[i][i];
    return sum;
}
 
int main( )
{
   double **a, **b;
   int n;
   scanf("%d", &n);
   a = Allocate(n, n);
   b = Allocate(n, n);
   if (a && b)
   {
      InitArray(a, n, n);
      InitArray(b, n, n);
      if (Track(a, n) < Track(b, n))
         PrintArray(a, n, n);
      else
         PrintArray(b, n, n);
      Dispose(a, n);
      Dispose(b, n);
      a = b = NULL;
   }
   return 0;
}
Добавлено через 6 минут
Да, и лучше все double заменить на int. Но и так работает, просто программа универсальная для прямоугольных (в общем случае) матриц (если убрать функцию Track()).
 
Текущее время: 22:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru