Удалить k строку и n столбец из двумерного массива с использованием указателей - C (СИ)
Формулировка задачи:
Нужно удалить k строку и n столбец из двумерного массива с использованием указателей. Перечитал кучу всего, в том числе и на данном форуме, но до меня до сих пор не доходит( С использованием массива сделал, а вот с использованием указателей что то не получается.
#include <time.h> #include <stdio.h> #define N 5 #define M 5 int output (int a [N][M]); int input (int a [N][M]); int ydalen(int a[N][M]); int main() { int a[N][M]; printf("vvedite massiv\n"); input(a); printf("massiv:\n"); output(a); printf("\n"); printf("\n"); printf("ydalenie\n"); printf("\n"); ydalen(a); } int input (int a[N][M]) {srand(time(0)); for(int i=1;i<N+1;i++) for(int j=1;j<M+1;j++) scanf("%d",&a[i][j]); printf("\n"); } int output (int a[N][M]) { for(int i=1;i<N+1;i++) { for(int j=1;j<M+1;j++) printf("%d ",a[i][j]); printf("\n"); } } int ydalen(int a[N][M]) { int k,n,i,j; printf("vvedite nomer stroki: "); scanf("%d",&k); printf("\n"); printf("vvedite nomer stolbca: "); scanf("%d",&n); for(i = 1; i < N+1; i++){ for(j = n; j < M ; j++){ a[i][j] = a[i][j+1]; } } for(i = k; i < N ; i++){ for(j = 1; j < M; j++){ a[i][j] = a[i+1][j]; } } for (i=1; i<N; i++){ for (j=1; j<M; j++){ printf("%d ",a[i][j]); } printf("\n"); } return a[N][M]; }
Решение задачи: «Удалить k строку и n столбец из двумерного массива с использованием указателей»
textual
Листинг программы
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #define N 5 #define M 5 void output (int n, int m,int **a) { for (int i=0; i<n; i++) { printf ("\n"); for (int j=0; j<m; j++) printf ("%d ",*(*(a+i)+j)); } } int main () { const int n=N,m=M; int **a = (int **)malloc(n*sizeof(int *)); int i,j; for (i=0; i<n; i++) { a[i] = (int *)malloc(m*sizeof(int)); } for (i=0; i<n; i++) for (j=0; j<m; j++) a[i][j]=i+j; output (n,m,a); getchar (); return 0; }
Объяснение кода листинга программы
В этом коде определён массив размером 5x5, заполненный значениями i+j. В функции output происходит вывод массива на экран. В функции main создаётся массив, заполняется, выводится на экран, а затем программа завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д