Подскажите как исправить код (работа с указателями в двумерном массиве) - 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 строка */

Объяснение кода листинга программы

В представленном коде выполняется следующая последовательность действий:

  1. X объявляется как двумерный массив.
  2. i и j объявляются как индексы для обращения к элементам массива X.
  3. n объявляется как размер массива X по одному из измерений.
  4. printf используется для вывода значения элемента массива X, на который указывают индексы i и j, на экран.
  5. Форматирование вывода задается строкой %3d, которая означает, что число должно быть выведено в 3-х позиционном формате.
  6. *(*X+i*n+j) является выражением, которое вычисляет адрес элемента массива X, на который указывают индексы i и j. Пожалуйста, учтите, что нумерация элементов списка может отличаться в зависимости от того, как именно вы хотите его представить.

Оцени полезность:

5   голосов , оценка 3.4 из 5
Похожие ответы