PDA

Просмотр полной версии : С++


Клявас®
25.06.2006, 23:32
помогите реализовать программку.
Вообщем условия таковы:
Написать с клавиатуры квадратную матрицу до 10 элементов.
Поменять главную диагональ с обратной. И вывести на экран полученную матрицу.
Писал программу около часу. Что-то не то. Может кто найдёт ошибку!:

#include <iostream>
using namespace std;
int main()
{
int n,i,j;
double mas[10][10];
cout<<"Введите матрицы длину n:"<<endl;
cin>>n;

for (i=0; i<n; i++){
for(int j=0; j<n; j++){
cout<<"Введите элемент: "<<i+1<< j+1<<endl;
cin>>mas[i][j];
}
}

for (i=0; i<n; i++){
for(int j=0; j<n; j++){
if(i=j){
mas[i][j]=mas[n-1-i][j];
}
}
}

cout<<"Поменяв диагональ, матрица получилась: "<<endl;

for (i=0;i<n;i++){
for (j=0;j<n;j++){
cout<<mas[i][j]<<" ";
}
cout<<endl;
}
return 0;
}

Клявас®
26.06.2006, 02:47
#include <iostream>
using namespace std;

void nived(int*);
void ived(int,int,int*,double**);
void skaic(int,int,int,int*,double**);
void isved(int,int,int*,double**);

int main(){
int i=0,j=0;
int temp=0;
int* n=new int;
nived(n);
double ** mas= new double*[*n];
for(i=0;i<*n;i++){
mas [i]=new double[*n];
}
double* sum=new double[*n-1];
ived(i,j,n,mas);
skaic(temp,i,j,n,mas);
isved(i,j,n,mas);
for (i=0;i<*n;i++){
delete []mas [i];
}
delete n;
delete []mas;
return 0;
}
//

void nived(int * n){
do{
cout<<"Iveskite matricos mata n: "<<endl;
cin>>*n;
if(*n<1||*n>10){
cout<<"Viskas blogai bandykite dar: \n";
}
}while (*n<1||*n>10);
}

void ived(int i, int j, int* n, double ** mas){
for (i=0; i<*n; i++){
for(j=0; j<*n; j++){
cout<<"\nElmentas: ["<<i+1<<"]["<<j+1<<"] ";
cin>>mas[i][j];
}
}
cout<<"\nPradine matrica:\n "<<endl;
for (i=0;i<*n;i++){
for (j=0;j<*n;j++){
cout<<mas[i][j]<<" ";
}
cout<<endl;
}
}

void skaic(int temp, int i, int j, int* n, double ** mas){
for (i=0; i<*n; i++){
for(j=0; j<*n; j++){
if(i==j){
temp = mas[i][j];
mas[i][j]=mas[*n-1-i][j];
mas[*n-1-i][j] = temp;
}
}
}
}

void isved(int i, int j, int* n, double** mas){
cout<<"\nMatrica su pakeistomis diagonalemis:\n "<<endl;
for (i=0;i<*n;i++){
for (j=0;j<*n;j++){
cout<<mas[i][j]<<" ";
}
cout<<endl;
}
}

ТЗ :lol: