Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.03.2013, 19:10   #1
AK55
Пользователь
 
Регистрация: 07.10.2012
Сообщений: 31
По умолчанию Матрица(переделать на С++)

Помогите пожалуйста переделать задачу с СИ на С++.
Код на СИ:
Код:
#include <stdlib.h>
#include <conio.h>
#include <stdio.h>
 
int main()
{
   int n, m, n1, m1;
   printf("\nEnter number of strok and stolbzov of matrix: ");
   scanf("%d%d", &n, &m);
 
   int** matrix;
   matrix = (int**)calloc(n, sizeof(int*));
   for (n1 = 0; n1 < n; n1++)
   {
      matrix[n1] = (int*)calloc(m, sizeof(int));
   }
 
   printf("\nEnter a matrix(%d*%d) postrochno: \n", n, m);
   for (n1 = 0; n1 < n; n1++)
   {
      for (m1 = 0; m1 < m; m1++)
      {
         printf("[%d,%d] = ", m1, n1);
         scanf("%d", &matrix[n1][m1]);
      }
   }
 
   char* vector = (char*)calloc(m, sizeof(char));
   fflush(stdin);
   int i, j;
   for (j = 0; j < m; j++)
   {
      vector[j] = 0;
      for (i = 0; i < n; i++)
      {
         vector[j] += matrix[j][i];
      }
   }
 
   for (j = 0; j < n; j++)
   {
      free(matrix[j]);
   }
   free(matrix);
 
 
   int* val = (int*)calloc(1, sizeof(int));
   
   for (j = 0, *val = 1; j < m; j++)
   {
      *val *= vector[j];
   }
 
   printf("\n");
   for (i = 0; i < m; i++)
   {
      printf("adress %p : vector[%u] = %d\n", &vector[i], i, vector[i]);
   }
   printf("\nadress %p : Res_val = %d", val, *val);
 
   free(vector);
   free(val);
   getch();
   return 0;
}
AK55 вне форума Ответить с цитированием
Старый 29.03.2013, 10:54   #2
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Практически любой код на C является кодом на C++. Ваш - является.
Abstraction вне форума Ответить с цитированием
Старый 29.03.2013, 11:12   #3
zvoronz
Пользователь
 
Регистрация: 03.01.2011
Сообщений: 49
По умолчанию

Нужно printf и scanf заменить на потоки ввода вывода cin cout. Операции выделения и удаления памяти на new и delete соответственно.
zvoronz вне форума Ответить с цитированием
Старый 29.03.2013, 11:21   #4
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,679
По умолчанию

Ну и конечно выделять и освобождать динамически память. new и delete вместо calloc и free
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Старый 29.03.2013, 11:35   #5
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
Нужно printf и scanf заменить на потоки ввода вывода cin cout. Операции выделения и удаления памяти на new и delete соответственно.
*переводит взгляд на ник ТС'а - на ник автора этого сообщения - на ник ТС'а*
Так... и в чём для Вас проблема это сделать - раз и почему Вы считаете, что ТС нужно это - два?
Abstraction вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль. Матрица NxN -> текстовый файл -> Матрица NxN - найти max по диагоналям -> типизированный файл Лунатик13 Помощь студентам 1 20.02.2012 15:54
переделать в js Julia-lisa Помощь студентам 0 17.12.2011 17:58
Непонятки с DirectX (матрица поворота, камера, матрица проекции) ROD Общие вопросы C/C++ 2 17.09.2010 17:00
TurboPascal: граф, матрица смежности и матрица инцидентности. ulala Помощь студентам 0 02.12.2009 10:11