Вот короче начало программы я сделал, двумерный массив выдает, т. е. в итоге появляется матрица... Я не могу делать замену двух любых строк, люди добрые помогите пожалуйста! ) Язык Си, 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);
}
#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);
}
делаешь процедуру swap
for (int i = 0; i < n)
swap(a[ i][ x] , a[ i][ b]);
for (int i = 0; i < n)
swap(a[ i][ x] , a[ i][ b]);
Похожие вопросы
- Сортировка двумерного динамического массива
- двумерный динамический массив в паскале
- Как задать двумерный динамический массив в Паскале?
- как вернуть двумерный динамический массив из функции С++
- ООП в c++. Совсем недавно познакомился с деструкторами класса и решил опробовать их на двумерном динамическом массиве.
- Написать программу в С++. Составить программу, которая по введенному номеру дня недели выводит его название.
- дан двумерный массив С(3,4).Получите новый массив А путём увеличения всех элементов исходного массива на число С.
- Составить программы формирования двумерного массива
- Написать программу в VBA арифметической прогрессии в динамическом массиве.
- С++: Как изменять размеры многомерных динамических массивов по ходу выполнения программы?