(C++) - Дана програма, яка визначає останнє додатне і перше від'ємне число в масиві. Знайти і виправити синтак-сичні й логічні помилки
#include
using namespace std;
int main()
{
double size = 8;
double arr[size] = { -5.7, 6.0, 2, 0, -4.7, 6, 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;
}
Answers & Comments
Ответ:
Ось виправлена програма з виправленнями синтаксичних та логічних помилок:
#include <iostream>
using namespace std;
int main()
{
const int size = 8;
double arr[size] = {-5.7, 6.0, 2, 0, -4.7, 6, 1, -4};
double positive = -1; // ініціалізуємо значенням, яке точно не з'явиться у масиві
for (int i = size - 1; i >= 0; i--) // змінюємо умову циклу, щоб ітерації відбувалися в межах масиву
{
if (arr[i] > 0)
{
positive = arr[i];
break;
}
}
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 negative number: " << negative << endl;
return 0;
}
Зміни, що були внесені:
Змінена тип змінної size з double на const int, щоб можна було використовувати її як розмір масиву
Ініціалізовано змінну positive значенням, яке точно не з'явиться у масиві, щоб мати можливість розрізнити, чи був у масиві додатній елемент, чи ні
Змінена умова циклу для першого циклу for, щоб ітерації відбувалися в межах масиву (ітерація виходить за межі масиву, якщо i дорівнює size)
Виправлено помилку в назві змінної в другому cout, де повинно бути "negative", а не "negatine"
Объяснение: