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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.05.2011, 08:04   #1
Элеонор
Новичок
Джуниор
 
Регистрация: 29.05.2011
Сообщений: 2
Восклицание Поменять местами диагональные элементы матрицы и вектор

Создать динамический массив и выполнить:
Даны матрица A размером m*n и вектор В размером m. Записать на главную диагональ элементы вектора, а в вектор - элементы главной диагонали. (На Си) Массив вроде создала, проблема в самом алгоритме
Код:
#include <vcl.h>
#include <stdio.h>
#include <conio.h>
#include <alloc.h>

#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused
void main(int argc, char* argv[])
{ unsigned char j,i,** matr, nm, **vec;
  unsigned short * matr1, *vec1;
  int m,n;
  clrscr();
  printf("Vvedite razmer matrici m*n: "); scanf("%d%d",&m, &n);
  printf("Vvedite razmer vectora m: "); scanf("%d",&m);
 matr=(unsigned char **)malloc(sizeof(unsigned char *)*m);
  if (matr==NULL)
  { puts("Ne sozdan dinamicheskiy massiv!");
    return;}
  randomize();
  for (i=0;i<m;i++)
  { matr[i]=(unsigned char *)malloc(sizeof(unsigned char)*n);
    if (matr[i]==NULL)
    { puts("Ne sozdan dinamicheskiy massiv!");
      return;}
    for (j=0;j<n;j++)   matr[i][j]=random(100);
  }    vec=(unsigned char **)malloc(sizeof(unsigned char *)*m);
       if (vec==NULL)
  { puts("Ne sozdan dinamicheskiy massiv!");
    return;}
  randomize();
   for (i=0;i<m;i++)
   vec[i]=random(50);// здесь выдает ошибку (возможно проблема в типах)
   printf("%4d",vec[i]);
    printf("\n");}

     for (i=0;i<m;i++)
  { for (j=0;j<n;j++)
    printf("%4d",matr[i][j]);
    printf("\n");
  }
 for (i=0;i<m;i++)
  for (j=0; j<n;j++)
  if (i=j)
 std::swap(matr[i][j], vec[i]); // ìåíÿåì ìåñòàìè äèàãîíàëüíûé åëåìåíò ìàòðèöè ñ âåêòîðîì

 // здесь уже не знаю как сохранить результат изменения и вывести на экран   

  for (i=0;i<m;i++) free(matr[i]);
    free(matr);
    free(mass);
  getch();
}
//---------------------------------------------------------------------------


________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 29.05.2011 в 08:29.
Элеонор вне форума Ответить с цитированием
Старый 29.05.2011, 08:28   #2
Элеонор
Новичок
Джуниор
 
Регистрация: 29.05.2011
Сообщений: 2
По умолчанию

Помогите пожалуйста)))))))
Элеонор вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поменять местами элементы в TreeView RIO Общие вопросы Delphi 2 16.05.2010 02:30
Pascal - Найти сумму всех ее отрицательных элементов и заменить ею все диагональные элементы этой матрицы NewBi Паскаль, Turbo Pascal, PascalABC.NET 2 24.04.2010 09:15
Поменять местами элементы в массиве! Angel-dm Паскаль, Turbo Pascal, PascalABC.NET 5 14.04.2010 14:59
Поменять местами элементы в массиве (реверс) Андрей.12 Помощь студентам 7 15.11.2009 16:51
[C++] Поменять местами наименьший и второй по величине элементы StudeHt Помощь студентам 2 10.06.2009 23:33