Сформируйте массив С, состоящий из элементов массивов А и В, упорядоченных по возрастанию - C (СИ)

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

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

Задание : Даны два массива, упорядоченных по возрастанию: А[n] и B[m]. Сформируйте массив C[n+m], состоящий из элементов массивов А и В, упорядоченный по возрастанию. Что не так ?
#include <stdio.h>
#include <conio.h>
#include <locale.h>
 
int main(void){
    const int max = 100;
    int A[max], B[max], C[2 * max];
    int i, j, k, n, m, r;
    setlocale(LC_ALL, "Russian");
    printf("Введите количество элементов массива А\n");
    scanf("%d", &n);
    printf("Введите количество элементов массива B\n");
    scanf("%d", &m);
    printf("Введите %d элемента/ов массива А\n", n);
    for (j = 0, i = 0, i < n, i++, j++);
    {
        scanf("%d", A[i]);
        C[j]=A[i];
    }
    printf("Введите %d элемента/ов массива B\n", m);
    for (k = 0, j = 0, k < m, k++, i++); 
    {
        scanf("%d", B[k]);
        C[j]=B[k];
    }
    printf("\nВведенный массив А:\n");
    for (i = 0; i < A + n; i++);
        printf("%d ", A[i]);
    printf("\nВведенный массив B:\n");
    for (k = 0, k < B + m , k++);
        printf("%d ", B[k]);
    r = m + n;
    for (k = 0; k < r - 1; k++);
    {
        for (j = 0; j < C + r - 1; j++); 
{
            if C[j] > C[j] + 1; 
        }
    }
    printf("\nУпорядоченный массив С:\n");
    for (j = 0, j < C + r, j++);
        printf("%d ", C[j]);
    _getch();
    return 0;
}
ошибки:
1>------ Сборка начата: проект: ConsoleApplication1, Конфигурация: Debug Win32 ------
1>  Исходный код.cpp
1>c:\users\maksimus\documents\visual studio 2013\projects\consoleapplication1\consoleapplication1\исходный код.cpp(11): warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>          c:\program files (x86)\microsoft visual studio 12.0\vc\include\stdio.h(283): см. объявление "scanf"
1>c:\users\maksimus\documents\visual studio 2013\projects\consoleapplication1\consoleapplication1\исходный код.cpp(13): warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>          c:\program files (x86)\microsoft visual studio 12.0\vc\include\stdio.h(283): см. объявление "scanf"
1>c:\users\maksimus\documents\visual studio 2013\projects\consoleapplication1\consoleapplication1\исходный код.cpp(15): error C2143: синтаксическая ошибка: отсутствие ";" перед ")"
1>c:\users\maksimus\documents\visual studio 2013\projects\consoleapplication1\consoleapplication1\исходный код.cpp(21): error C2143: синтаксическая ошибка: отсутствие ";" перед ")"
1>c:\users\maksimus\documents\visual studio 2013\projects\consoleapplication1\consoleapplication1\исходный код.cpp(27): error C2446: <: нет преобразования "int *" в "int"
1>          Не существует контекста, в котором такое преобразование возможно
1>c:\users\maksimus\documents\visual studio 2013\projects\consoleapplication1\consoleapplication1\исходный код.cpp(27): error C2040: <: "int" отличается по уровням косвенного обращения от "int *"
1>c:\users\maksimus\documents\visual studio 2013\projects\consoleapplication1\consoleapplication1\исходный код.cpp(30): error C2446: <: нет преобразования "int *" в "int"
1>          Не существует контекста, в котором такое преобразование возможно
1>c:\users\maksimus\documents\visual studio 2013\projects\consoleapplication1\consoleapplication1\исходный код.cpp(30): error C2040: <: "int" отличается по уровням косвенного обращения от "int *"
1>c:\users\maksimus\documents\visual studio 2013\projects\consoleapplication1\consoleapplication1\исходный код.cpp(30): error C2143: синтаксическая ошибка: отсутствие ";" перед ")"
1>c:\users\maksimus\documents\visual studio 2013\projects\consoleapplication1\consoleapplication1\исходный код.cpp(35): error C2446: <: нет преобразования "int *" в "int"
1>          Не существует контекста, в котором такое преобразование возможно
1>c:\users\maksimus\documents\visual studio 2013\projects\consoleapplication1\consoleapplication1\исходный код.cpp(35): error C2040: <: "int" отличается по уровням косвенного обращения от "int *"
1>c:\users\maksimus\documents\visual studio 2013\projects\consoleapplication1\consoleapplication1\исходный код.cpp(37): error C2061: синтаксическая ошибка: идентификатор "C"
1>c:\users\maksimus\documents\visual studio 2013\projects\consoleapplication1\consoleapplication1\исходный код.cpp(41): error C2446: <: нет преобразования "int *" в "int"
1>          Не существует контекста, в котором такое преобразование возможно
1>c:\users\maksimus\documents\visual studio 2013\projects\consoleapplication1\consoleapplication1\исходный код.cpp(41): error C2040: <: "int" отличается по уровням косвенного обращения от "int *"
1>c:\users\maksimus\documents\visual studio 2013\projects\consoleapplication1\consoleapplication1\исходный код.cpp(41): error C2143: синтаксическая ошибка: отсутствие ";" перед ")"
========== Сборка: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========

Решение задачи: «Сформируйте массив С, состоящий из элементов массивов А и В, упорядоченных по возрастанию»

textual
Листинг программы
#include <stdio.h>
#include <conio.h>
#include <locale.h>
#define N 5
#define M 8
int main(void)
{
    int j1, i1, k1, r, C, rab, m, n;
    setlocale(LC_ALL, "Russian");
    int A[N] = { 1, 3, 2, 5, 4 };
    int B[M] = { 6, 7, 8, 9, 10, 12, 11, 13 };
        printf("A = ");
    for (int i1 = 0; i1 < N; i1++)
        printf("%d ", A[i1]);
        printf("\nB = ");
    for (int j1 = 0; j1 < M; j1++)
        printf("%d ", B[j1]);
        printf("\n");
    
    r = m + n;
    for (k1 = 0; k1<r - 1; k1++){
        for (C[k1] = C[k1]; C[k1]<C[k1] + r - 1; C[k1]++){
            if (C[k1] >(C[k1] + 1)){
                rab = C[k1];
                C[k1] = (C[k1] + 1);
                (C[k1] + 1) = rab;
            }
        }
    }
    
    printf("\nC = ");
    for (int k1 = 0; k1 < N + M; k1++)
    printf("%d ", C[k1]);
    printf("\n");
    _getch();
    return 0;
}

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

  1. Включаем необходимые заголовочные файлы для работы с консолью и функцией setlocale.
  2. Определяем значения переменных N и M, которые представляют собой размеры массивов A и B соответственно.
  3. Выводим массив A и B на экран, чтобы было видно их начальное состояние.
  4. Вычисляем значение переменной r как сумму размеров массивов A и B.
  5. Инициализируем массив C размером r, который будет содержать результат.
  6. Последовательно заполняем массив C элементами массивов A и B, сначала элементами массива A, затем элементами массива B, упорядоченными по возрастанию.
  7. Выводим массив C на экран, чтобы было видно его окончательное состояние.
  8. Получаем ввод от пользователя с помощью функции _getch() и завершаем программу.

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


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

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

12   голосов , оценка 4.167 из 5
Похожие ответы