Решено: массив

Модератор: Модераторы разделов

kisa2009
Сообщения: 1
ОС: vista

Решено: массив

Сообщение kisa2009 »

Здравствуйте. Программировать начала недавно, так что многих вещей не знаю
есть задача
Сформировать матрицу A=(aij)nxn, элементы которой определяются формулой:
aij = cos (i + j ) * x
Из матрицы A=(aij)nxn получить матрицу B=(bij)nxn , переставляя в каждой строке наибольший по абсолютной величине (первый, если их несколько) с элементом, стоящим на главной диагонали.

x = П / 10

Сделала её часть, с функцией, а с максимумом и заменой никак

Код:

#include <stdio.h> #include <math.h> #include <conio.h> #include <iostream.h> const double X = 3.14 /10; void SetValue(double *A, int i, int j, int n) { *(A + (i*n+j)) = cos(double(i+j))*X; cout << *(A + (i*n+j)) << " "; } int main() { int N, i, j; printf("Razmernost A:"); scanf("%d", &N); double** A = new double*[N]; for (i=0;i<N;i++) A[i] = new double[N]; for (i=0; i<N; i++) { for (j=0; j<N; j++) { SetValue(&A[0][0], i, j, N); } } //vivod printf("\nVvedennaya matrica :\n"); for (i=0; i<N; i++) { for (j=0;j<N;j++) printf("%d\t",&A[i][j]); printf("\n"); } delete []A; getch(); return 0; }


но там тоже есть маленькая проблемка. При выводе массива значения не соответствуют действительности, но зато они соответствуют ей в строчке
cout << *(A + (i*n+j)) << " ";
помогите пожалуйста доделать, вам это раз плюнуть, а я уже 3ю ночь почти не сплю..
Спасибо сказали:
Аватара пользователя
Crazy
Сообщения: 862
Статус: Адепт Дзен.
ОС: Mint, Win7.

Re: Решено: массив

Сообщение Crazy »

Код: Выделить всё

#include <stdio.h>
#include <math.h>
#include <conio.h>
#include <iostream.h>

const double X = M_PI /10;

void SetValue(double **A, int i, int j)
{
   A[i][j]  = cos(double(i+j))*X;
   cout << A[i][j] << " ";
}
int main()
{
  int N, i, j;
  printf("Razmernost A:");
  scanf("%d", &N);
  double** A = new double*[N];
  for (i=0;i<N;i++)
    A[i] = new double[N];
  for (i=0; i<N; i++)
  {
    for (j=0; j<N; j++)
    {
      SetValue(A, i, j);
    }
  }
//vivod
printf("\nVvedennaya matrica :\n");
for (i=0; i<N; i++)
{
  for (j=0;j<N;j++)
  printf("%f\t",A[i][j]);
  printf("\n");
}

for(i=0; i<N; i++)
{
  double conk=fabs(A[i][0]);
  int k=0;
  for(j=0; j<N; j++)
  {

    if(fabs(A[i][j])>conk)
      {
    k=j;
    conk=fabs(A[i][j]);
      }
  }
  double tmp=A[i][i];
  A[i][i]=A[i][k];
  A[i][k]=tmp;
}


printf("\nOut :\n");
for (i=0; i<N; i++)
{
  for (j=0;j<N;j++)
  printf("%f\t",A[i][j]);
  printf("\n");
}
for(i=0; i<N; i++)
  delete[] A[i];

delete []A;
getch();

return 0;
}

Desipere in loco
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Решено: массив

Сообщение sash-kan »

kisa2009 писал(а):
21.09.2009 19:36
<conio.h>
и при чём тут linuxforum?


Crazy
грешно за студентов решать задачки.
студенты думать сами должны.

тем паче, что в заголовке Программирование черным по белому написано:
Темы от студентов с запросами готовых решений по заданиям зарываются не глядя.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
Crazy
Сообщения: 862
Статус: Адепт Дзен.
ОС: Mint, Win7.

Re: Решено: массив

Сообщение Crazy »

sash-kan писал(а):
21.09.2009 21:01
kisa2009 писал(а):
21.09.2009 19:36
<conio.h>
и при чём тут linuxforum?


Crazy
грешно за студентов решать задачки.
студенты думать сами должны.

тем паче, что в заголовке Программирование черным по белому написано:
Темы от студентов с запросами готовых решений по заданиям зарываются не глядя.


Я видел как Portnov созерцал этот топик. Почему не закрыл не знаю.

Desipere in loco
Спасибо сказали:
Аватара пользователя
Portnov
Модератор
Сообщения: 1786
Статус: Матёрый линуксоид
ОС: Debian testing/unstable

Re: Решено: массив

Сообщение Portnov »

Ну что ж, задачку вроде как даже успели решить. Закрываю.
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Спасибо сказали: