Из языка С++ перевести в Си - C (СИ)

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

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

/*
 * Ввести целочисленный массив из N целых чисел.
 * Найти максимальный элемент массива
*/
#include <iostream>
 
using namespace std;
 
int main()
{
    int *arr; // указатель для выделения памяти под массив
    int size; // размер массива
    
    // Ввод количества элементов массива
    cout << "n = ";
    cin >> size;
 
    if (size <= 0) {
        // Размер масива должен быть положитлеьным
        cerr << "Invalid size" << endl;
        return 1;
    }
 
    arr = new int[size]; // выделение памяти под массив
 
    // заполнение массива
    for (int i = 0; i < size; i++) {
        cout << "arr[" << i << "] = ";
        cin >> arr[i];
    }
 
    // Нахождение максимального элемента
    int max = arr[0];
    for (int i = 1; i < size; i++) {
        if (arr[i] > max) {
            max = arr[i];
        }
    }
 
    // Вывод результата на экран
    cout << "max = " << max << endl;
 
    delete [] arr; // освобождение памяти
    
    return 0;
}

Решение задачи: «Из языка С++ перевести в Си»

textual
Листинг программы
#include <stdio.h>
#include <malloc.h>
 
int main(void) {
    int* arr; // указатель для выделения памяти под массив
    int  i, max, size; // размер массива
 
    // Ввод количества элементов массива
    printf("n = ");
    scanf("%d", &size);
 
    if (size <= 0) {
        // Размер масива должен быть положительным
        fputs("Invalid size", stderr);
        return 1;
    }
 
    arr = (int*)malloc((size_t)size * sizeof(int)); // выделение памяти под массив
 
    // заполнение массива
    for (i = 0; i < size; i++) {
        printf("arr[%d] = ", i);
        scanf("%d", &arr[i]);
    }
 
    // Нахождение максимального элемента
    max = arr[0];
    for(i = 1; i < size; i++) {
        if(arr[i] > max)
            max = arr[i];
    }
 
    // Вывод результата на экран
    printf("max = %d\n", max);
 
    free(arr); // освобождение памяти
    return 0;
}

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

  1. Объявлены переменные: указатель arr, переменные i, max, size.
  2. Пользователю предлагается ввести количество элементов массива.
  3. Проверка: если размер массива отрицательный или равен нулю, выводится сообщение об ошибке и возвращается 1.
  4. Выделение памяти под массив с помощью malloc.
  5. Цикл: заполнение массива с помощью scanf.
  6. Цикл: поиск максимального элемента, начиная со второго элемента массива.
  7. Вывод максимального элемента на экран с помощью printf.
  8. Освобождение памяти с помощью free.
  9. Возвращение 0, означающее успешный завершение программы.

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


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

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

11   голосов , оценка 3.636 из 5