Сформируйте массив С, состоящий из элементов массивов А и В, упорядоченных по возрастанию - 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;
- }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы для работы с консолью и функцией setlocale.
- Определяем значения переменных N и M, которые представляют собой размеры массивов A и B соответственно.
- Выводим массив A и B на экран, чтобы было видно их начальное состояние.
- Вычисляем значение переменной r как сумму размеров массивов A и B.
- Инициализируем массив C размером r, который будет содержать результат.
- Последовательно заполняем массив C элементами массивов A и B, сначала элементами массива A, затем элементами массива B, упорядоченными по возрастанию.
- Выводим массив C на экран, чтобы было видно его окончательное состояние.
- Получаем ввод от пользователя с помощью функции _getch() и завершаем программу.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д