Другие языки программирования и технологии

Дан двумерный динамический массив, надо составить программу, которая меняет местами две любые строки

Вот короче начало программы я сделал, двумерный массив выдает, т. е. в итоге появляется матрица... Я не могу делать замену двух любых строк, люди добрые помогите пожалуйста! ) Язык Си, NetBeans 7.2.

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int rzr()
{
int z=rand()%9-0;
return z;
}

int main()
{
int i,j,n,m;

printf("vvedite kolichestvo strok ");
scanf("%d", &n);
printf("vvedite kolichestvo stolbcov ");
scanf("%d", &m);

int **M=(int**)malloc(n* sizeof(int*));
for(i=0;i<n;i++)>=(int*) malloc(m*sizeof(int));
}

for(i=0;i<=n-1;i++)
{
for(j=0;j<=m-1;j++)
{
M[j]=rzr();
}
}
printf("nachalniy massiv:");

for(i=0;i<=n-1;i++)
{
printf("\n ");
for(j=0;j<=m-1;j++)
{
printf(" %d",M[j]);
}
}

}
Обмен двух любых строк в динамическом двумерном массиве осуществляется банальным обменом значений указателей, без всяких циклов:

#include <time.h>
#include <stdio.h>
#include <stdlib.h>

main() {
    int **a, n, m, r, c, k, j, *t;
    srand(time(NULL));
    printf("n m? ");
    scanf("%d %d", &n, &m);
    a = (int **)malloc(n * sizeof(a[0]));
    printf("массив: \n");
    for (r = 0; r < n; ++r) {
        a[r] = (int *)malloc(m * sizeof(a[0][0]));
        for (c = 0; c < m; ++c) {
            a[r][c] = rand() % 10;
            printf(" %d", a[r][c]);
        }
        putchar('\n');
    }
    printf("индексы строк для обмена? ");
    scanf("%d %d", &k, &j);
    t = a[k];
    a[k] = a[j];
    a[j] = t;
    printf("результ: \n");
    for (r = 0; r < n; ++r) {
        for (c = 0; c < m; ++c) printf(" %d", a[r][c]);
        putchar('\n');
    }
    for (r = 0; r < n; ++r) free(a[r]);
    free(a);
}
Александр Воротников
Александр Воротников
60 290
Лучший ответ
делаешь процедуру swap
for (int i = 0; i < n)
swap(a[ i][ x] , a[ i][ b]);
Юра Желтов
Юра Желтов
2 978