(переворачивание матрицы)
#include <stdafx.h>
void transp(int **a, int *n, int *m);
void main()
{
int i,n,m,a[100][100];
printf("vvedite razmer massiva ");
scanf("%d %d",&n,&m);
printf("vvedite elementbl massiva ");
for (int i=0;i<n;i++){
for (int j=0;j<m;j++)
scanf("%d",&a[i][j]);}
for (i=0;i<n;i++){
for (int j=0;j<m;j++)
printf("%d\t",a[i][j]);
printf("\n");
}
printf("\n");
transp(a,&n,&m);
for ( i=0;i<n;i++){
for (int j=0;j<m;j++)
printf("%d\t",a[i][j]);
printf("\n");}
}
void transp(int **b,int *k,int *l)
{
int temp;
for(int i=0; i < *k/2; i++)
for (int j = 0; j < *l; j++){
temp = *(*(b+i)+j);
*(*(b+i)+j) = *(*(b+*k-1-i)+j);
*(*(b+*k-1-i)+j) = temp;
}
}
3 декабря 2008 в 23:00
Надо динамически выделять память под массивы. После ввода количества элементов делаем примерно так:
int **a = new int[n];
for (int i = 0; i < n; ++i)
a[i] = new int[m];
Далее все, как у тебя. Главное, перед выходом из программы не забыть освободить память:
for (int i = 0; i < n; ++i)
delete[] a[i];
delete[] a;
ЗЫ не проверял – могут быть ошибки.
3 декабря 2008 в 22:04
ошибка тут
transp(a,&n,&m);
cannot convert parameter1'from int[100][100]' to'int**'
3 декабря 2008 в 22:02
та была ж только что тема…или это опять ты)))
3 декабря 2008 в 22:02
это опять я))
я сдал ту прогу. мне теперь надо обязательно использовать адреса указатели… чтото не получается)