G
Guest
Драсте = )
не могу разобратся....
дали задание: Задан двумерный массив размером N*N элементов. Отразить элементы относительно главной диагонали. Дополнительные массивы не использовать. при чем:
• розмерность матрицы должна вводитися при выполнении программы;
• само решение задачи должно быть оформлено в виде функции, которой передается матриця и её розмерность.
на сколько я понимаю в программе должны быть использованы указатели, сначала я написал алгоритм решения задачи без указателей, а потом с ними,причем программа без указателей 100% работоспособна, а с указателями нет, вот что вышло без указателей:
а вот программа с указателями, дело в том что я не могу правильно записать
с указателями..... помогите пожалуйста... подскажите как исправить ошибку....
не могу разобратся....
дали задание: Задан двумерный массив размером N*N элементов. Отразить элементы относительно главной диагонали. Дополнительные массивы не использовать. при чем:
• розмерность матрицы должна вводитися при выполнении программы;
• само решение задачи должно быть оформлено в виде функции, которой передается матриця и её розмерность.
на сколько я понимаю в программе должны быть использованы указатели, сначала я написал алгоритм решения задачи без указателей, а потом с ними,причем программа без указателей 100% работоспособна, а с указателями нет, вот что вышло без указателей:
Код:
#include <iostream.h>
#include <conio.h>
//#include <stdlib.h> //
void main()
{
int mas[100][100], N, i, j, temp, p = 0;
clrscr();
do {
cout << " VVESTI RAZMERNOCT' matricu :";
cin >> N;
} while ((N < 2) || (N > 100));
cout << "mass: " << endl;
for (i = 0; i < N; i++) {
for (j = 0; j < N; j++) {
mas[i][j] = p++;
cout <<' '<< mas[i][j];
}
cout << endl;
}
for (i = 1; i < N; i++)
for (j = 0; j < i; j++) {
temp = mas[i][j];
mas[i][j] = mas[j][i];
mas[j][i] = temp;
}
cout << endl << "mas2" << endl;
for (i = 0; i < N; i++) {
for (j = 0; j < N; j++) {
cout <<' '<< mas[i][j];
}
cout << endl;
}
getch();
}
а вот программа с указателями, дело в том что я не могу правильно записать
Код:
for (i = 1; i < N; i++)
for (j = 0; j < i; j++) {
temp = mas[i][j];
mas[i][j] = mas[j][i];
mas[j][i] = temp;
}
Код:
#include <iostream.h>
#include <conio.h>
#include <alloc.h>
void zap(int *,int);
int main(){
int *q; //pokazatel na massiv pokazateley
int x,y,s; //ryad stolbec, razmernost,4uslo dlya zapolneniya
cout<<"Vvedite razmernost ot 2 do 999:"<<endl;
do{cin>>s;}while ((s<2)||(s>999));
q=(int*)malloc(sizeof(int)*s); //vudelenie pamyatu
zap(q,s);
return 0;
}
void zap(int *a,int s) {
int l,r,temp,z=0;
cout<<"na4alnuy massiv:"<<endl;
for(l=0; l<s; l++){
for(r=0; r<s; r++){
*a=z++;
cout<<' '<<*a;
}cout<<endl;
}
for(a=0,l=1;l<s;l++,a++){
for(r=0;r<l;r++){
temp=a;
a=a+l+r;
a=temp;
}
cout<<endl;
}
for(a=0,l=0;l<s;l++,a++){
for(r=0;r<s;r++){
cout<<*a;
} cout<<endl;
}getch();
}