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

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

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

Задание : Даны два массива, упорядоченных по возрастанию: А[n] и B[m]. Сформируйте массив C[n+m], состоящий из элементов массивов А и В, упорядоченный по возрастанию. Что не так ?
Листинг программы
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <locale.h>
  4. int main(void){
  5. const int max = 100;
  6. int A[max], B[max], C[2 * max];
  7. int i, j, k, n, m, r;
  8. setlocale(LC_ALL, "Russian");
  9. printf("Введите количество элементов массива А\n");
  10. scanf("%d", &n);
  11. printf("Введите количество элементов массива B\n");
  12. scanf("%d", &m);
  13. printf("Введите %d элемента/ов массива А\n", n);
  14. for (j = 0, i = 0, i < n, i++, j++);
  15. {
  16. scanf("%d", A[i]);
  17. C[j]=A[i];
  18. }
  19. printf("Введите %d элемента/ов массива B\n", m);
  20. for (k = 0, j = 0, k < m, k++, i++);
  21. {
  22. scanf("%d", B[k]);
  23. C[j]=B[k];
  24. }
  25. printf("\nВведенный массив А:\n");
  26. for (i = 0; i < A + n; i++);
  27. printf("%d ", A[i]);
  28. printf("\nВведенный массив B:\n");
  29. for (k = 0, k < B + m , k++);
  30. printf("%d ", B[k]);
  31. r = m + n;
  32. for (k = 0; k < r - 1; k++);
  33. {
  34. for (j = 0; j < C + r - 1; j++);
  35. {
  36. if C[j] > C[j] + 1;
  37. }
  38. }
  39. printf("\nУпорядоченный массив С:\n");
  40. for (j = 0, j < C + r, j++);
  41. printf("%d ", C[j]);
  42. _getch();
  43. return 0;
  44. }
ошибки:
Листинг программы
  1. 1>------ Сборка начата: проект: ConsoleApplication1, Конфигурация: Debug Win32 ------
  2. 1> Исходный код.cpp
  3. 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.
  4. 1> c:\program files (x86)\microsoft visual studio 12.0\vc\include\stdio.h(283): см. объявление "scanf"
  5. 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.
  6. 1> c:\program files (x86)\microsoft visual studio 12.0\vc\include\stdio.h(283): см. объявление "scanf"
  7. 1>c:\users\maksimus\documents\visual studio 2013\projects\consoleapplication1\consoleapplication1\исходный код.cpp(15): error C2143: синтаксическая ошибка: отсутствие ";" перед ")"
  8. 1>c:\users\maksimus\documents\visual studio 2013\projects\consoleapplication1\consoleapplication1\исходный код.cpp(21): error C2143: синтаксическая ошибка: отсутствие ";" перед ")"
  9. 1>c:\users\maksimus\documents\visual studio 2013\projects\consoleapplication1\consoleapplication1\исходный код.cpp(27): error C2446: <: нет преобразования "int *" в "int"
  10. 1> Не существует контекста, в котором такое преобразование возможно
  11. 1>c:\users\maksimus\documents\visual studio 2013\projects\consoleapplication1\consoleapplication1\исходный код.cpp(27): error C2040: <: "int" отличается по уровням косвенного обращения от "int *"
  12. 1>c:\users\maksimus\documents\visual studio 2013\projects\consoleapplication1\consoleapplication1\исходный код.cpp(30): error C2446: <: нет преобразования "int *" в "int"
  13. 1> Не существует контекста, в котором такое преобразование возможно
  14. 1>c:\users\maksimus\documents\visual studio 2013\projects\consoleapplication1\consoleapplication1\исходный код.cpp(30): error C2040: <: "int" отличается по уровням косвенного обращения от "int *"
  15. 1>c:\users\maksimus\documents\visual studio 2013\projects\consoleapplication1\consoleapplication1\исходный код.cpp(30): error C2143: синтаксическая ошибка: отсутствие ";" перед ")"
  16. 1>c:\users\maksimus\documents\visual studio 2013\projects\consoleapplication1\consoleapplication1\исходный код.cpp(35): error C2446: <: нет преобразования "int *" в "int"
  17. 1> Не существует контекста, в котором такое преобразование возможно
  18. 1>c:\users\maksimus\documents\visual studio 2013\projects\consoleapplication1\consoleapplication1\исходный код.cpp(35): error C2040: <: "int" отличается по уровням косвенного обращения от "int *"
  19. 1>c:\users\maksimus\documents\visual studio 2013\projects\consoleapplication1\consoleapplication1\исходный код.cpp(37): error C2061: синтаксическая ошибка: идентификатор "C"
  20. 1>c:\users\maksimus\documents\visual studio 2013\projects\consoleapplication1\consoleapplication1\исходный код.cpp(41): error C2446: <: нет преобразования "int *" в "int"
  21. 1> Не существует контекста, в котором такое преобразование возможно
  22. 1>c:\users\maksimus\documents\visual studio 2013\projects\consoleapplication1\consoleapplication1\исходный код.cpp(41): error C2040: <: "int" отличается по уровням косвенного обращения от "int *"
  23. 1>c:\users\maksimus\documents\visual studio 2013\projects\consoleapplication1\consoleapplication1\исходный код.cpp(41): error C2143: синтаксическая ошибка: отсутствие ";" перед ")"
  24. ========== Сборка: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========

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

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <locale.h>
  4. #define N 5
  5. #define M 8
  6. int main(void)
  7. {
  8.     int j1, i1, k1, r, C, rab, m, n;
  9.     setlocale(LC_ALL, "Russian");
  10.     int A[N] = { 1, 3, 2, 5, 4 };
  11.     int B[M] = { 6, 7, 8, 9, 10, 12, 11, 13 };
  12.         printf("A = ");
  13.     for (int i1 = 0; i1 < N; i1++)
  14.         printf("%d ", A[i1]);
  15.         printf("\nB = ");
  16.     for (int j1 = 0; j1 < M; j1++)
  17.         printf("%d ", B[j1]);
  18.         printf("\n");
  19.    
  20.     r = m + n;
  21.     for (k1 = 0; k1<r - 1; k1++){
  22.         for (C[k1] = C[k1]; C[k1]<C[k1] + r - 1; C[k1]++){
  23.             if (C[k1] >(C[k1] + 1)){
  24.                 rab = C[k1];
  25.                 C[k1] = (C[k1] + 1);
  26.                 (C[k1] + 1) = rab;
  27.             }
  28.         }
  29.     }
  30.    
  31.     printf("\nC = ");
  32.     for (int k1 = 0; k1 < N + M; k1++)
  33.     printf("%d ", C[k1]);
  34.     printf("\n");
  35.     _getch();
  36.     return 0;
  37. }

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

  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

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

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

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