Подскажите как исправить код (работа с указателями в двумерном массиве) - C (СИ)
Формулировка задачи:
Вот код:
Подскажите как исправить код (работа с указателями в двумерном массиве)
Работает не правильно, буду благодарен за помощь)
Указатели вообще не понимаю) не останьтесь равнодушными))
#include <stdio.h> #include <stdlib.h> #include <time.h> #define n 4 #define m 5 int main() { int X[n][m]; int B[m]; int i,j,v; srand(time(0)); for (i=0; i<m; i++) {B[i]=0;} for (i=0; i<n;i++) for (j=0; j<m;j++) *(*X+i*m+j)= rand()%15+10; printf("Massiv \n"); for (i=0; i<n;i++) { for (j=0; j<m;j++) printf("%4d",*(*X+i*m+j)); printf("\n");} printf("Massiv B \n"); for(j=0; j<m; j++) { for(i=0; i<n; i++) { if (*(*X+i*m+j) > 0 && *(*X+i*m+j)%5 == 0) B[j] += *(*X+i*m+j); } printf ("%3d",*(*X+i*n+j)); }
Решение задачи: «Подскажите как исправить код (работа с указателями в двумерном массиве)»
textual
Листинг программы
printf ("%3d",*(*X+i*n+j)) /* 34 строка */
Объяснение кода листинга программы
В представленном коде выполняется следующая последовательность действий:
X
объявляется как двумерный массив.i
иj
объявляются как индексы для обращения к элементам массиваX
.n
объявляется как размер массиваX
по одному из измерений.printf
используется для вывода значения элемента массиваX
, на который указывают индексыi
иj
, на экран.- Форматирование вывода задается строкой
%3d
, которая означает, что число должно быть выведено в 3-х позиционном формате. *(*X+i*n+j)
является выражением, которое вычисляет адрес элемента массиваX
, на который указывают индексыi
иj
. Пожалуйста, учтите, что нумерация элементов списка может отличаться в зависимости от того, как именно вы хотите его представить.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д