Консультация № 198736
25.05.2020, 17:04
0.00 руб.
0 2 1
Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос:

Помогите пожалуйста доработать код. Программа меняет местами максимальный элемент среди отрицательных элементов с минимальным элементом среди положительных элементов. Нужно добавить условие, что если нету отрицательных номеров, программа прекращает работу.

Приложение:
#include <stdio.h>
#include <time.h>
#include <locale.h>
#include <math.h>
#include <stdlib.h>
int main()
{
setlocale(LC_ALL,"rus");
int i;
int ma;
int mi;
int n=10;
int max=-999999;
int min=999999;
int a[n];
printf("Программа меняющая местами максимальный элемент среди отрицательных элементов с минимальным элементом среди положительных элементов.\n\n\n");
for (i = 0; i < n; i++ )
{
printf("Введите эмемент a[%d] :",i);
scanf("%d",&a[i]);
}
printf("\n");
for (i=0;i<n;i++)
{
if(a[i]>0)
{ //минимальный элемент среди положительных и его номера
if(a[i] < min)
{
min = a[i];
mi=i;
}
}
if(a[i]<0)
{ //максимальный элемент среди отрицательных и его номера
if(a[i] > max)
{
max = a[i];
ma=i;
}
}
}
for (i=0;i<n;i++)
{ //смена значений местами
a[ma]=min;
a[mi]=max;
}
for (i = 0; i < n; i++ )
{
printf("%d ",a[i]);
}
getch();
return 0;
}

Обсуждение

давно
Советник
400484
472
25.05.2020, 21:53
общий
25.05.2020, 21:53
Добрый день.
В код:
Код:

for (i = 0; i < n; i++)
{
printf("Введите эмемент a[%d] :", i);
scanf("%d", &a[i]);
}

не пробовали добавить проверку на наличие числа меньше 0?
Код:

bool otricatelnoe = false;
...
for (i = 0; i < n; i++)
{
printf("Введите эмемент a[%d] :", i);
scanf("%d", &a[i]);

... // проверка
}
if (otricatelnoe) return -1;
...
давно
Советник
400484
472
28.05.2020, 09:23
общий
это ответ
Здравствуйте, niktop1!
В код:
Код:

for (i = 0; i < n; i++)
{
printf("Введите эмемент a[%d] :", i);
scanf("%d", &a[i]);
}

добавьте проверку на наличие числа меньше 0?
Код:

bool neotricatelnoe = true;
...
for (i = 0; i < n; i++)
{
printf("Введите элемент a[%d] :", i);
scanf("%d", &a[i]);
if (a[i] < 0) neotricatelnoe = false;
}
if (neotricatelnoe) return -1; // выход из программы, т.к. не было отрицательного числа
...
Форма ответа