Подскажите пожалуйста, в чем проблема? НЕ правильно вьіводит. C++
Условие: вьівести нечетньіе числа (по 10 в строке в виде столбцов) , отсортировать по убьіванию.
Проблема вот в чем - вьіводить начинает с нечетного елемента так, что самого первого нет (Пример 3 7 6 9 8 -1, вьіводит 7 3 -1) и еще одно - не всегда вьіводит по 10 чисел в строку, иногда бьівает что по 5-6 чисел и перескакивает на новую и продолжает вьівод.
#include "stdafx.h"
#include "conio.h"
#include
#include "stdio.h"
#include "math.h"
using namespace std;
void sort_insert(int a[], int n);
int _tmain(int argc, _TCHAR* argv[])
{
int i;
int a[50] = { 0 }, n;
i = 0;
cout << "Vvedite massiv:\n";
cin >> a[0];
do
{
i++;
cin >> a[i];
} while (a[i] != 0);
cout << endl;
n = i;
for (i = 0; i
printf("%d ", a[i]);
cout << endl;
cout << "Sort masiva\n";
sort_insert(a, n);
for (int i = 0; i < n; i++)
if ((a[i] % 2) != 0) // отсеиваем чётные числа
{
if (i == 0)
cout << a[i] << " ";
else if (a[i] == a[i - 1])
{
for (int j = i; j
a[j] = a[j + 1];
n--; i--;
}
else {
cout << a[i];
if (i<10 && i % 9 == 0 || i % 10 == 9 || i == n - 1)
cout << '\n';
else cout << " ";
}
}
_getche();
return 0;
}
void sort_insert(int a[], int n)
{
int i, j, x;
for (i = 0; i
{
x = a[i]; j = i;
while (x>a[j - 1])
{
a[j] = a[j - 1]; j = j - 1;
if (j >= 0)continue;
}
a[j] = x;
}
}