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 элементов, заполненный
пользователем с клавиатуры.
#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;
}
Объяснение: