Подскажите как исправить код (работа с указателями в двумерном массиве) - 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
. Пожалуйста, учтите, что нумерация элементов списка может отличаться в зависимости от того, как именно вы хотите его представить.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д