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

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

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

Листинг программы
  1. #include "iostream"
  2. #include "stdlib.h"
  3. #include "iomanip"
  4. using namespace std;
  5. int main()
  6. {
  7. setlocale(LC_CTYPE,"Russian");
  8. int size;
  9. cout << "Введите размер массива ";
  10. cin >> size;
  11. int *a = new int[size];
  12. cout << "Введите элементы массива \n" ;
  13. for (int i = 0; i < size; i++)
  14. {
  15. cin >> a[i];
  16. }
  17. for (int i = 0; i < size; i+=2)
  18. {
  19. if(a[i]>0)
  20. {
  21. int minIndex = i;
  22. for (int j = i + 2; j < size; j += 2)
  23. {
  24. if (a[j] < a[minIndex])
  25. {
  26. minIndex = j;
  27. }
  28. }
  29. swap (a[i], a[minIndex]);
  30. }
  31. }
  32. cout <<"Вывод массива \n";
  33. for (int i = 1; i < size; i += 2)
  34. {
  35. cout << a[i] << ' ';
  36. }
  37. system ("pause");
  38. return 0;
  39. }
хелп
кто-нибудь

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

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <locale.h>
  4.  
  5. int main() {
  6.     int size, * a, i, j, tmp, minIndex;
  7.  
  8.     setlocale(LC_CTYPE, "Russian");
  9.     printf("Введите размер массива: ");
  10.     scanf("%d", &size);
  11.     a = malloc(sizeof(int) * size);
  12.     printf("Введите элементы массива\n");
  13.  
  14.     for (i = 0; i < size; ++i) {
  15.         scanf("%d", &a[i]);
  16.     }
  17.  
  18.     for (i = 0; i < size; i += 2) {
  19.         if (0 < a[i]) {
  20.             minIndex = i;
  21.             for (j = i + 2; j < size; j += 2) {
  22.                 if (a[j] < a[minIndex]) {
  23.                     minIndex = j;
  24.                 }
  25.             }
  26.             tmp = a[i];
  27.             a[i] = a[minIndex];
  28.             a[minIndex] = tmp;
  29.         }
  30.     }
  31.  
  32.     printf("Вывод массива\n");
  33.     for (i = 1; i < size; i += 2) {
  34.         printf("%d ", a[i]);
  35.     }
  36.  
  37.     system("pause");
  38.     return 0;
  39. }

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

  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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут