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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.11.2021, 15:51   #1
katut)
Новичок
Джуниор
 
Регистрация: 04.11.2021
Сообщений: 1
По умолчанию Преобразовать вектор, поменяв попарно местами те его элементы, которые в сумме больше P

Здравствуйте! Дан целочисленный вектор А размерности n. Последний элемент вектора - Р. Преобразовать вектор, поменяв попарно местами те его элементы, которые в сумме больше Р.


(В условии еще отдельно было сказано найти максимальное число среди отрицательных чисел)
Код:
#include <stdio.h>
#include <conio.h>
#include <math.h>
 
//основная функция
int main()
{
int A[30]; // описание массива
int i,n, max;
long p = 1;
clrscr();
printf ("\n Введите размерность вектора (целое число, меньшее 20) ");
printf ("\nВведите элементы вектора ");
for (i = 0; i < n; i++)
{
printf ("\n A[%d] = ",i);
scanf ("%d", &A[i]);
}
{
//вывод в столбик с указанием имени элемента
clrscr();
printf ("\n Исходный вектор:");
for (i = 0; i < n; i++)
printf("\n A[%d]=%d", i, A[i]);
}
//нахождения максимального среди отрицательных чисел
{
max=1;
for (i = 0; i < n; i++)
if ( A[i]<0){
 
max =A[i];
break;    }
for (i=0; i < n; i++)
if (( A[i]<0)&&(max<A[i])){
 
max =A[i];
    }
 
 
 }
 
if (max==1) printf("\n Нет отрицательных элементов ");
 else printf("\n MAX= %d ", max);
 
 
 
getch();
return 0;
}
katut) вне форума Ответить с цитированием
Старый 04.11.2021, 19:50   #2
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,728
По умолчанию

......

Последний раз редактировалось digitalis; 04.11.2021 в 19:51. Причина: пардон, недодумал
digitalis вне форума Ответить с цитированием
Старый 05.11.2021, 03:52   #3
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,431
По умолчанию

Коду не достает форматирования. Вы забыли запросить ввод n. Поиск максимального можно и в один цикл запихнуть, но раз i общая, то хотя бы не начинайте второй обход с начала, а просто:
Код:
for (; i < n; i++)
В чем возникли сложности с преобразованием вектора?
Код:
for (i = 0; i + 1 < n; i += 2)
    if (...) { // тут сравнить сумму i и i+1 элементов с n-1 элементом
        // тут обмен i и i+1 элементов
    }
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
delphi - .1) Дан целочисленный вектор А(n). Поменять местами первый и максимальный элементы вектора. ninel_ka Помощь студентам 4 17.06.2017 12:10
Непрямоугольная матрица чисел. Сформировать матрицу, поменяв в каждой строке местами максимальный и минимальный элементы (язык C) малхаз Помощь студентам 5 14.02.2014 21:02
Преобразовать массив: в каждом столбце поменять местами максимальный и первый элементы AFI Паскаль, Turbo Pascal, PascalABC.NET 5 17.05.2013 05:40
Поменять местами диагональные элементы матрицы и вектор Элеонор Помощь студентам 1 29.05.2011 08:28
В двусвязном списке продублировать те элементы, которые меньше следующего, но больше больше предыдущего. gvenog Помощь студентам 0 13.12.2010 21:20