Перевести код с С++ на 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;
}
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с файлами и вводом-выводом
- Установка русской локали для корректного вывода и ввода данных
- Запрос у пользователя размера массива и сохранение этого размера в переменную size
- Выделение памяти под массив a с помощью функции malloc, размер которой определяется переменной size
- Ввод элементов массива с помощью цикла for и функции scanf
- Поиск минимального элемента в массиве с помощью двух циклов for и условного оператора if. Переменная minIndex хранит индекс минимального элемента
- Если элемент a[i] больше нуля, то происходит обмен значениями с a[minIndex] и a[i] становится минимальным элементом
- Вывод массива с помощью цикла for и функции printf. Выводятся только нечетные индексы массива (от 1 до size-1 с шагом 2)
- Ожидание нажатия клавиши для завершения программы с помощью функции system(
pause) - Возврат 0, что означает успешное завершение программы