C++
1. Дана программа, которая определяет последнее положительное и первое отрицательное число в массиве. Найти и исправить синтаксические и логические ошибки, перечислив их.

#include
using namespace std;

int main()
{
double size = 8;
double arr[size]={-5.7, 6.0, 2, 0, -4.7, 6, 8.1, -4, 0};
int positive = 0;
for (int i = size; i >= 0; i++)
{
if (arr[i] > 0)
{
positive = arr[i];
break;
}
}
int negative = 0;
for (int i = 0; i < size; i++)
{
if (arr[i] < 0)
{
negative = arr[i];
break;
}
}

cout << "Last positive number: " << positive << endl;
cout << "First negatine number: " << negative << endl;

return 0;
}



Входными данными во всех описанных ниже заданиях является массив из 10 элементов, заполненный
пользователем с клавиатуры.

Прша Прша    1   22.03.2020 13:21    9

Ответы
Артеммашар Артеммашар  12.10.2020 02:28

#include <iostream>

using namespace std;

int main()

{

//double size = 8;//необходима константа на целое число  

const int size = 8;

//double arr[size] = { -5.7, 6.0, 2, 0, -4.7, 6, 8.1, -4, 0 }; //лишнее число. Должно быть 8

double arr[size] = { -5.7, 6.0, 2, 0, -4.7, 6, 8.1, -4 };

//int positive = 0; //в массиве тип double, будет потеря данных если использовать int

double positive = 0;

//for (int i = size; i >= 0; i++)//если идем с конца, то нужно начинать с size-1, т.к. нумерация в массиве с нуля и i--, т.к. идем с конца

for (int i = size - 1; i >= 0; i--)

{

 if (arr[i] > 0)

 {

  positive = arr[i];

  break;

 }

}

//int negative = 0;//в массиве тип double, будет потеря данных если использовать int

double negative = 0;

for (int i = 0; i < size; i++)

{

 if (arr[i] < 0)

 {

  negative = arr[i];

  break;

 }

}

cout << "Last positive number: " << positive << endl;

cout << "First negatine number: " << negative << endl;

return 0;

}

Объяснение:

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика