ВП
Владимер Процан

C++ Builder Помогите решить задачу плиз

Определить позицию первого и последнего нуля в одномерном массиве, использую цикл For. Например массив состоит из 10307, программа в ответе должна выдать, что первый ноль стоит на второй позиции, а последний ноль стоит на четвертой позиции.

Иван
Иван

#include
using namespace std;
void work(short *, const size_t);
void show(short *, const size_t);
int main() {
size_t size;

short a[] = { 1, 0, 3, 0, 7 };
size = sizeof(a) / sizeof(short);
show(a, size);
work(a, size);

short b[] = { 1, 2, 3, 4, 5, 6 };
size = sizeof(b) / sizeof(short);
show(b, size);
work(b, size);

short c[] = { 1, 2, 3, 0, 5, 7, 8 };
size = sizeof(c) / sizeof(short);
show(c, size);
work(c, size);

cin.get();
return 0;
}
void show(short * _v, const size_t _sz) {
for (unsigned n = 0; n < _sz; n++) cout << ' ' << _v[n];
cout << endl;
}
void work(short * _v, const size_t _sz) {
bool beg = false, end = false;
unsigned bg = -1, ed = -1;
for (unsigned n = 0, m = _sz - 1; n <= m; n++, m--) {
if (!beg && !_v[n]) {
beg = true;
bg = n;
++bg;
}
if (!end && !_v[m]) {
end = true;
ed = m;
++ed;
}
if (beg && end) break;
}
if (beg && end) cout << " first: " << bg << endl << " second: " << ed;
else if (beg) cout << " first: " << bg << endl << " second: " << bg;
else if (end) cout << " first: " << ed << endl << " second: " << ed;
else cout << " Not zero!";
cout << endl << endl;
}

ПП
Петр Петров

С С++ не очень знаком, на C# пишу, но код будет как-то так выглядеть:

int mas[] = {/* Массив */};
int FirstNull = 0;
int LastNull = 0;
boolean Check = false;
for (int j = 0; j < mas.Length; j++){
if (mas[j] == 0){
LastNull = j;
if (Check == false){
FirstNull = j;
Check = true;
}
}
}
cout >> "Первый нуль в позиции: " >> FirstNull >> endl >> "Последний нуль в позиции: " >> LastNull >> endl;

Похожие вопросы
Помогите решить задачу по C#
Помогите решить эту задачу на C# ???
Помогите решить задачу на C# ???
Помогите решить задачу на C++
Помогите решить задачу в C++
Помогите решить задачу в С++ Builder
Помогите с Builder C++
помогите с контрольной по C++ Builder
Помогите решить на С++ (если можно на C++ Builder)
помогите с программой на C++ builder