Переписать код с использованием указателей - 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; }
Объяснение кода листинга программы
- Создаем функцию для нахождения суммы главной диагонали массива.
- Создаем функцию для заполнения элементов массива.
- Создаем функцию для вывода элементов массива.
- Задаем размер массива.
- Устанавливаем локальную систему времени на
украинскую
. - Инициализируем генератор случайных чисел текущим временем.
- Используем функцию для заполнения элементов массива A.
- Выводим массив A.
- Вычисляем сумму главной диагонали массива A.
- Выводим сумму главной диагонали массива A.
- Используем функцию для заполнения элементов массива B.
- Выводим массив B.
- Вычисляем сумму главной диагонали массива B.
- Выводим сумму главной диагонали массива B.
- Возвращаем 0 из функции main(), что означает успешный конец работы программы.
- Массив A создается размером 5х5.
- Массив B создается размером 5х5.
- Значение 5 используется как размер массива в определении макроса SIZE.
- В функции main() устанавливается локальная система времени на
украинскую
. - Генератор случайных чисел инициализируется текущим временем.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д