Сформируйте массив С, состоящий из элементов массивов А и В, упорядоченных по возрастанию - 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() и завершаем программу.