Показать полную графическую версию : матрицы
Добрый вечер. Ув. форумчане пожалуйста помогите решить задачу по программированию, на тему: матрицы.
Условие:
Дано действительную квадратную матрицу порядка n. Получить новую матрицу путем замены элементов, сумма индексов которых четная на среднее геометрическое модулей элементов, находящихся на главной диагонали.
необходимо написать код на С++, пожалуйста помогите это сделать, не могу понять как правильно записать последовательность действий.(((
#include "stdafx.h"
#include "locale.h"
#include "stdio.h"
#include "math.h"
const int N=4; // порядок матрицы 3х3
int inp(float matr[N][N]) // ввод матрицы
{
int i, j;
for (i=1; i<=N-1; i++)
for (j=1; j<=N-1; j++)
{
printf("\n[%d.%d]=",i,j);
scanf("%f",&matr[i][j]);
}
return 0;
}
int out(float matr[N][N]) // вывод матрицы
{
int i, j;
for (i=1; i<=N-1; i++)
{
for (j=1; j<=N-1; j++)
printf("%.2f ",matr[i][j]);
printf("\n");
}
return 0;
}
int _tmain(int argc, _TCHAR* argv[])
{
setlocale(LC_ALL, "rus"); // вывод русских символов в консоль
float A[N][N];
printf("Введите значения для матрицы А:\n");
inp(A);
printf("\nВы ввели:\n\nМатрица А:\n");
out(A);
int h, g;
float srGem=1;
// находим средне-геометрическое элементов главной диагонали
for (h=1; h<=N-1; h++)
srGem=srGem*abs(A[h][h]);
srGem=sqrt(srGem);
// итоговая обработка матрицы
for (h=1; h<=N-1; h++)
for (g=1; g<=N-1; g++)
if ((h+g)%2==0)
A[h][g]=srGem;
printf("\nМатрица A после обработки:\n");
out(A);
return 0;
}
const int N=4; » - Матрица 3*3????оО
Hector, спасибо большое!
ничего же не должно поменяться если я изменю размеры матрицы до 10х10?
выдает ошибку:
c:\program files\microsoft visual studio\myprojects\ll\ff.cpp(1) : fatal error C1083: Cannot open include file: 'stdafx.h': No such file or directory
Error executing cl.exe.
LilLoco, что тебя смущает?
mego4el, в принципе не должно. насчет c:\program files\microsoft visual studio\myprojects\ll\ff.cpp(1) : fatal error C1083: Cannot open include file: 'stdafx.h': No such file or directory
Error executing cl.exe. »
вроде не может найти stdafx.h
LilLoco, что тебя смущает? »
Ну вроде как при N = 4, Матрица Matr[N][N] не будет матрицей с размерностью 3*3!или мне кажется?оО
LilLoco, массив позволит вместить в себя матрицу размером 3x3. Т.е. памяти будет задействовано больше, но ошибки не возникнет.
А вообще в дебагере надо посмотреть.
Ошибки то не будет, но матрица то будет при этом содержать 4*4 элементов!А я говорю просто про комментарий, в котором написано, что N = 4 - это порядок матрицы 3*3!Этим и с толку сбить можно же!
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC