Перевести код с С++ на C - C (СИ)

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

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

#include "iostream"
#include "stdlib.h"
#include "iomanip"
 
using namespace std;
 
int main()
 
{
    setlocale(LC_CTYPE,"Russian");
     
    int size;
    cout << "Введите размер массива ";
    cin >> size;
    int *a = new int[size];
    cout << "Введите элементы массива \n" ;
    for (int i = 0; i < size; i++)
    {
        cin >> a[i];
    }  
    for (int i = 0; i < size; i+=2)
    {   
         if(a[i]>0)
    {
        int minIndex = i;
        for (int j = i + 2; j < size; j += 2)
        {   
            if (a[j] < a[minIndex])
            {
                minIndex = j;
            }
        }        
        swap (a[i], a[minIndex]);
         }
    }
   cout <<"Вывод массива \n";
   for (int i = 1; i < size; i += 2)
    {
        cout << a[i] << ' ';
    }
system ("pause");
return 0;
}
хелп
кто-нибудь

Решение задачи: «Перевести код с С++ на C»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
 
int main() {
    int size, * a, i, j, tmp, minIndex;
 
    setlocale(LC_CTYPE, "Russian");
    printf("Введите размер массива: ");
    scanf("%d", &size);
    a = malloc(sizeof(int) * size);
    printf("Введите элементы массива\n");
 
    for (i = 0; i < size; ++i) {
        scanf("%d", &a[i]);
    }
 
    for (i = 0; i < size; i += 2) {
        if (0 < a[i]) {
            minIndex = i;
            for (j = i + 2; j < size; j += 2) {
                if (a[j] < a[minIndex]) {
                    minIndex = j;
                }
            }
            tmp = a[i];
            a[i] = a[minIndex];
            a[minIndex] = tmp;
        }
    }
 
    printf("Вывод массива\n");
    for (i = 1; i < size; i += 2) {
        printf("%d ", a[i]);
    }
 
    system("pause");
    return 0;
}

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

  1. Подключение необходимых библиотек для работы с файлами и вводом-выводом
  2. Установка русской локали для корректного вывода и ввода данных
  3. Запрос у пользователя размера массива и сохранение этого размера в переменную size
  4. Выделение памяти под массив a с помощью функции malloc, размер которой определяется переменной size
  5. Ввод элементов массива с помощью цикла for и функции scanf
  6. Поиск минимального элемента в массиве с помощью двух циклов for и условного оператора if. Переменная minIndex хранит индекс минимального элемента
  7. Если элемент a[i] больше нуля, то происходит обмен значениями с a[minIndex] и a[i] становится минимальным элементом
  8. Вывод массива с помощью цикла for и функции printf. Выводятся только нечетные индексы массива (от 1 до size-1 с шагом 2)
  9. Ожидание нажатия клавиши для завершения программы с помощью функции system(pause)
  10. Возврат 0, что означает успешное завершение программы

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


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

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

10   голосов , оценка 4.1 из 5