Переписать код с использованием указателей - C (СИ) (151886)

Узнай цену своей работы

Формулировка задачи:

Помогите сделать указатели...
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
 
#define SIZE 5
 
int func( int array[][SIZE], int size) { /*Створюємо функцію для знаходження суми головної діагоналі*/
    int sum = 0;
    for ( int i = 0; i < SIZE; i++ ) {
            if ( i == i ) {
                sum += array[i][i];
            }
        }
    return sum;
}
 
int smasiv(int array[][5]){
    for ( int i = 0; i < SIZE; i++ ) { /*Функція для створення елементів в масиві*/
        for ( int j = 0; j < SIZE; j++ ) {
            array[i][j] = rand()%49;
        }
    }
}
 
int zmasiv(int array[][5]){
    for ( int i = 0; i < SIZE; i++ ) { /*Фунція для записування масива*/
        for ( int j = 0; j < SIZE; j++ ) {
            printf("%4d ", array[i][j]);
        }
        printf("\n");
    }
}
 
int main() {
    setlocale(LC_ALL,"ukrainian");
    int A[SIZE][SIZE];
    int B[SIZE][SIZE];
    int sum;
    smasiv(A); /*Створюємо елементи масиву */
    printf("Масив А:\n");
    zmasiv(A); /*Записуємо елементи масиву */
    sum = func(A, SIZE); /*Використовуємо функції для знаходження сум діагоналей */
    printf("Сума головної дiагоналi таблицi А:%d\n", sum); /*Виводимо суму головної діагоналі масиву А*/
    
    smasiv(B); /*Створюємо елементи масиву */
    printf("Масив B:\n");
    zmasiv(B); /*Записуємо елементи масиву */
    sum = func(B, SIZE); /*Використовуємо функції для знаходження сум діагоналей */
    printf("Сума головної дiагоналi таблицi B:%d\n", sum); /*Виводимо суму головної діагоналі масиву B*/
    return 0;
}

Решение задачи: «Переписать код с использованием указателей»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <locale.h>
 
int func(int* array, int size) {  /*Створюємо функцію для знаходження суми головної діагоналі*/
    int sum = 0;
    for (int i = 0; i < size; i++) {
        sum += *(array + i * size + i);
    }
    return sum;
}
 
void smasiv(int* array, int size) {
    for (int i = 0; i < size; i++) {   /*Функція для створення елементів в масиві*/
        for (int j = 0; j < size; j++) {
            *(array + size * i + j) = rand() % 49;
        }
    }
}
 
void zmasiv(int* array, int size) {
    for (int i = 0; i < size; i++) {   /*Фунція для записування масива*/
        for (int j = 0; j < size; j++) {
            printf("%4d ", *(array + size * i + j));
        }
        printf("\n");
    }
}
 
#define SIZE 5
 
int main() {
    int A[SIZE][SIZE];
    int B[SIZE][SIZE];
    int sum;
 
    setlocale(LC_ALL, "ukrainian");
    srand(time(NULL));
 
    smasiv((int*)A, SIZE); /*Створюємо елементи масиву */
    printf("Масив А:\n");
    zmasiv((int*)A, SIZE); /*Записуємо елементи масиву */
    sum = func((int*)A, SIZE); /*Використовуємо функції для знаходження сум діагоналей */
    printf("Сума головної дiагоналi таблицi А:%d\n", sum); /*Виводимо суму головної діагоналі масиву А*/
 
    smasiv((int*)B, SIZE); /*Створюємо елементи масиву */
    printf("Масив B:\n");
    zmasiv((int*)B, SIZE); /*Записуємо елементи масиву */
    sum = func((int*)B, SIZE); /*Використовуємо функції для знаходження сум діагоналей */
    printf("Сума головної дiагоналi таблицi B:%d\n", sum); /*Виводимо суму головної діагоналі масиву B*/
    return 0;
}

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

  1. Создаем функцию для нахождения суммы главной диагонали массива.
  2. Создаем функцию для заполнения элементов массива.
  3. Создаем функцию для вывода элементов массива.
  4. Задаем размер массива.
  5. Устанавливаем локальную систему времени на украинскую.
  6. Инициализируем генератор случайных чисел текущим временем.
  7. Используем функцию для заполнения элементов массива A.
  8. Выводим массив A.
  9. Вычисляем сумму главной диагонали массива A.
  10. Выводим сумму главной диагонали массива A.
  11. Используем функцию для заполнения элементов массива B.
  12. Выводим массив B.
  13. Вычисляем сумму главной диагонали массива B.
  14. Выводим сумму главной диагонали массива B.
  15. Возвращаем 0 из функции main(), что означает успешный конец работы программы.
  16. Массив A создается размером 5х5.
  17. Массив B создается размером 5х5.
  18. Значение 5 используется как размер массива в определении макроса SIZE.
  19. В функции main() устанавливается локальная система времени на украинскую.
  20. Генератор случайных чисел инициализируется текущим временем.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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