Преобразовать код из 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;
 
}

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

  1. Включаются необходимые заголовочные файлы
  2. Устанавливается код страницы для вывода
  3. Объявляются переменные:
    • n - размер массива (10)
    • min - индекс минимального элемента (0)
    • max - индекс максимального элемента (0)
    • m - позиция для обмена (0)
    • m1 - позиция для обмена (0)
    • i - цикл для обхода массива (0)
    • A - массив для ввода (10)
    • temp - временная переменная (0)
  4. Выводится приглашение для ввода массива
  5. Заполняется массив A с помощью функции scanf_s
  6. Находится индекс минимального элемента (min)
  7. Находится индекс максимального элемента (max)
  8. Выводится приглашение для ввода позиций для обмена
  9. Вводятся позиции m и m1 с помощью функции scanf_s
  10. Если введены некорректные позиции, выводится сообщение об ошибке и просят ввести данные заново
  11. Производится обмен элементов A[max] и A[m]
  12. Производится обмен элементов A[min] и A[m1]
  13. Выводится сообщение о том, что наибольший элемент поменяли с m
  14. Выводится массив A
  15. Выводится сообщение о том, что наименьший элемент поменяли с m1
  16. Выводится массив A
  17. Производится обмен элементов A[max] и A[min]
  18. Производится обмен элементов max и min
  19. Выводится сообщение о том, что наибольший и наименьший элементы поменяли местами
  20. Выводится массив A
  21. Выполняется команда system(pause) для приостановки выполнения программы
  22. Возвращается 0, чтобы указать, что программа успешно завершилась

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


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

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

6   голосов , оценка 4.167 из 5