Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.12.2019, 02:08   #1
shakshuka
Новичок
Джуниор
 
Регистрация: 12.12.2019
Сообщений: 1
По умолчанию Отсортировать элементы массива по возрастанию и заменить их на синусы этих элементов.

Вводятся массивы А и В с клавиатуры и дальше их общие элементы переносятся в массив С, где они должны быть заменены на синусы этих элементов и должны стоять по возрастанию.
Код:
#include <stdio.h>
#include <stdlib.h>

int main ()
{
    int n,m,i,j,k=0,p=0;
    printf("Enter n<300:   ");
    scanf("%d",&n);
    printf("Enter m<200<n: ");
    scanf("%d",&m);
    int A[n], B[m], C[n];
    printf("Zapovnite massiv A\n");
    for (i=0;i<n;i++)
    {
        scanf("%d", &A[i]);
    }
    printf("\n");
    printf("Zapolnite massiv B\n");
    for (i=0;i<m;i++)
    {
        scanf("%d", &B[i]);
    }
    printf("\n");
    for (i=0;i<n;i++) printf("%d ",A[i]);
    printf("\n");
    for (i=0;i<m;i++) printf("%d ",B[i]);
    printf("\n");
    int temp=0;
    for (i=0;i<n;i++)
    {
        k=0;
        for (j=0;j<m;j++)
        {
            if (B[j]==A[i])
            {
                k++;
                if (k>0)
                {
                    p++;
                    C[p]=A[i];
                }
                printf("C[%d]=%d\n",p,C[p]);
            }

        }
    }
    return 0;
}
Как отсортировать элементы в массиве С?
shakshuka вне форума Ответить с цитированием
Старый 12.12.2019, 10:21   #2
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,546
По умолчанию

Любым из существующих методов.
https://infostart.ru/public/204320/
Я, например, предпочитаю "пузырек" (никаких алкогольных ассоциаций!) ввиду простоты. Но это лишь личное предпочтение.
Код:
            if (B[j]==A[i])
            {
                k++;
                if (k>0)
                {
                    p++;
                    C[p]=A[i];
                }
                printf("C[%d]=%d\n",p,C[p]);
            }
Это лишнее. k вначале = 0, при выполнении условия инкрементируется, поэтому
if k>0 сработает всегда.
Код:
        k=0;
        for (j=0;j<m;j++)
        {
            if (B[j]==A[i])
            {
               C[k]=A[i];
                printf("C[%d]=%d\n",k,C[k]);
                k++;
            }

        }

Последний раз редактировалось digitalis; 12.12.2019 в 10:24.
digitalis вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[C++] Массив Х содержит 40 действительных чисел. Переписать в массив Y положительные элементы массива Х с четными номерами и отсортировать его по возрастанию. Kogard Помощь студентам 6 16.11.2018 13:13
Задан массив из k чисел. Отсортировать элементы массива по возрастанию. На С ZERO186 Помощь студентам 1 11.06.2018 10:22
Массив Х содержит 40 действительных чисел. Переписать в массив Y положительные элементы массива Х с четными номерами и отсортировать его по возрастанию. Kiruxa_UA Помощь студентам 2 22.10.2017 17:24
Дан массив X(N).Найти среднеквадратичное всех элементов массива и заменить этим значение нулевые элементы массива. sev48fire Паскаль, Turbo Pascal, PascalABC.NET 3 21.06.2012 23:44