Преобразовать код из C++ в Си - C (СИ)
Формулировка задачи:
Очень нужно переделать эту программу из C++ именно на Cи, помогите кому не трудно.
Вот задание для которого делалась программа
Дана последовательность A1,..., An. Поменять местами:
Наибольший член с членом с номером m;
Наименьший член с членом с номером m1;
Наибольший член с наименьшим членом.
Значения m и m1 ввести с клавиатуры и проверить на корректность.
include "stdafx.h"
#include <iostream>
#include <windows.h>
int main() {
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
const int n = 10;
int min = 0, max = 0, m = 0, m1 = 0, temp;
float A[n];
std::cout << "Введите последовательность " << n << " чисел:\n";
for (int i = 0; i<n; i++) {
std::cin >> A[i];
if (A[i]<A[min])
min = i;
if (A[i]>A[max])
max = i;
}
std::cout << "Введиете две позиции от 0 до " << "9: ";
while (std::cin >> m >> m1 && (m<0 || m1<0 || m >= n || m1 >= n))
std::cout << "Не коректная позиции. Введите снова";
temp = A[max];
A[max] = A[m];
A[m] = temp;
max = m;
std::cout << "После того как поменяли местами наибольший члена с членом m: " << m << ':' << std::endl;
for (int i = 0; i<n; i++)
std::cout << A[i] << ' ';
std::cout << std::endl;
temp = A[min];
A[min] = A[m1];
A[m1] = temp;
min = m1;
std::cout << "После того как поменяли наименьший член с членом m1: " << m1 << ':' << std::endl;
for (int i = 0; i<n; i++)
std::cout << A[i] << ' ';
std::cout << std::endl;
temp = A[max];
A[max] = A[min];
A[min] = temp;
temp = max;
max = min;
min = temp;
std::cout << "После изменения наибольшего с наименьшим членом:" << std::endl;
for (int i = 0; i<n; i++)
std::cout << A[i] << ' ';
std::cout << std::endl;
system("pause");
return 0;
}Решение задачи: «Преобразовать код из C++ в Си»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
int main() {
setlocale(LC_ALL, ".1251");
const int n = 10;
int min = 0, max = 0, m = 0, m1 = 0;
int i;
int A[n], temp;
printf("Введите последовательность %d чисел:\n",n);
for (i = 0; i<n; i++) {
scanf_s("%d",&A[i]);
if (A[i]<A[min])
min = i;
if (A[i]>A[max])
max = i;
}
printf( "Введиете две позиции от 0 до 9: ");
while (scanf_s("%d %d",&m, &m1) && (m<0 || m1<0 || m >= n || m1 >= n))
printf("Не коректная позиции. Введите снова");
temp = A[max];
A[max] = A[m];
A[m] = temp;
max = m;
printf("После того как поменяли местами наибольший члена с членом m: %d",m);
for (int i = 0; i<n; i++)
printf("%d ", A[i]);
printf("\n");
temp = A[min];
A[min] = A[m1];
A[m1] = temp;
min = m1;
printf("После того как поменяли наименьший член с членом m1: %d :\n", m1);
for (int i = 0; i<n; i++)
printf("%d ", A[i]);
printf("\n");
temp = A[max];
A[max] = A[min];
A[min] = temp;
temp = max;
max = min;
min = temp;
printf("После изменения наибольшего с наименьшим членом:\n");
for (int i = 0; i<n; i++)
printf("%d ", A[i]);
printf("\n");
system("pause");
return 0;
}
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы
- Устанавливается код страницы для вывода
- Объявляются переменные:
- n - размер массива (10)
- min - индекс минимального элемента (0)
- max - индекс максимального элемента (0)
- m - позиция для обмена (0)
- m1 - позиция для обмена (0)
- i - цикл для обхода массива (0)
- A - массив для ввода (10)
- temp - временная переменная (0)
- Выводится приглашение для ввода массива
- Заполняется массив A с помощью функции scanf_s
- Находится индекс минимального элемента (min)
- Находится индекс максимального элемента (max)
- Выводится приглашение для ввода позиций для обмена
- Вводятся позиции m и m1 с помощью функции scanf_s
- Если введены некорректные позиции, выводится сообщение об ошибке и просят ввести данные заново
- Производится обмен элементов A[max] и A[m]
- Производится обмен элементов A[min] и A[m1]
- Выводится сообщение о том, что наибольший элемент поменяли с m
- Выводится массив A
- Выводится сообщение о том, что наименьший элемент поменяли с m1
- Выводится массив A
- Производится обмен элементов A[max] и A[min]
- Производится обмен элементов max и min
- Выводится сообщение о том, что наибольший и наименьший элементы поменяли местами
- Выводится массив A
- Выполняется команда system(
pause) для приостановки выполнения программы - Возвращается 0, чтобы указать, что программа успешно завершилась