Другие языки программирования и технологии
Помогите с подпрограммой в с++.
Нужно ввести массив из 6 чисел в теле программы и передать его подпрограмме. Найти номер последнего непарного элемента массива. Как это сделать?
Увы, никак! В С++ нет подпрограмм!
Условие задания неопределённое без указания, как сформирован массив.
Что значит парные и непарные? Парными считаются соседние или произвольно расположенные?
Если элемент с каким-нибудь значением один или их чётное количество - это понятно.
А как поступать, если их, например три? Считать 2 парных и один непарный или составляющими 3 пересекающиеся пары?
Но есть подозрение, что непарный - это корявый перевод украинского слова "непарний" - нечётный.
Тогда всё встаёт на свои места.
#include<iostream>
using namespace std;
//Функция (подпрограмма) определения номера последнего нечётного
int FindLastOdd(int a[], int n)
{
int k = -1;
for (int i = 0; i < n; i++)
if (a[ i ] & 1) // это можно заменить на if (a[ i ] % 2) или на if (a[ i ] % 2 != 0)
k = i;
return ++k;
}
//Главная функция программы (тело)
int main()
{
const int n = 6;
setlocale(LC_ALL,"Russian");
int a[ n ], k;
cout << "Введите массив: " << endl;
for (int i = 0; i < n; i++)
{
cout << "A[" << i + 1 << "]: ";
cin >> a[ i ];
}
k = FindLastOdd(a, n);
if (!k) // это равнозначно if (k == 0)
cout << "Нечетных нет";
else
cout << "Последний нечетный A[" << k << "] = " << a[ k - 1 ] << endl;
cin.get();
return 0;
}
Что значит парные и непарные? Парными считаются соседние или произвольно расположенные?
Если элемент с каким-нибудь значением один или их чётное количество - это понятно.
А как поступать, если их, например три? Считать 2 парных и один непарный или составляющими 3 пересекающиеся пары?
Но есть подозрение, что непарный - это корявый перевод украинского слова "непарний" - нечётный.
Тогда всё встаёт на свои места.
#include<iostream>
using namespace std;
//Функция (подпрограмма) определения номера последнего нечётного
int FindLastOdd(int a[], int n)
{
int k = -1;
for (int i = 0; i < n; i++)
if (a[ i ] & 1) // это можно заменить на if (a[ i ] % 2) или на if (a[ i ] % 2 != 0)
k = i;
return ++k;
}
//Главная функция программы (тело)
int main()
{
const int n = 6;
setlocale(LC_ALL,"Russian");
int a[ n ], k;
cout << "Введите массив: " << endl;
for (int i = 0; i < n; i++)
{
cout << "A[" << i + 1 << "]: ";
cin >> a[ i ];
}
k = FindLastOdd(a, n);
if (!k) // это равнозначно if (k == 0)
cout << "Нечетных нет";
else
cout << "Последний нечетный A[" << k << "] = " << a[ k - 1 ] << endl;
cin.get();
return 0;
}
Похожие вопросы
- Программирование на языке СИ с использованием подпрограммы-функции
- Изучение системы команд Ассемблера. Подпрограммы и прерывания. Помогите с задачами
- TURBOPASCAL 7.0 модуль dos помогите пожалуйста с подпрограммой
- FASM. Замена символов в строке, используя подпрограммы.
- Кто омжет написать пподпрограмму на паскале и чем программа отличается от подпрограммы ?
- Pascal перевести программу на подпрограмму.
- Составить подпрограмму-функцию вычисления значений интеграла методом Симпсон.
- Нет перегруженной подпрограммы с таким количеством параметров Replace
- помогите решить плз! Программирование, Паскаль. Множества. прозьба без наворотов... Циклы, иф, подпрограммы, строки, множе
- "Работа с матрицами,использование подпрограмм" TurboPascal