Предмет: Информатика,
автор: daryaka220797
пожалуйста помогите найти ошибку в коде, не верно сортирует: нужно четные эл-ты отсортировать по возрастанию,а нечетные по убыванию СИ++ я уже все перепроверила никак не получается найти
{ srand(time(0));
int n,i,s,k,j,d,max;
setlocale(LC_ALL,"rus");
cout<<" n=";
cin>>n;
int a[n],b[n],c[n];
for (i=0; i
a[i]=rand()%20-10;
cout<<" a[n]=";
cout<<"n";
for (i=0; i
{
cout<
}
i=0;
k=0;
j=0;
do
{
if(a[i]%2==0)
{
c[k]=a[i];
k++;
}
else
{
b[j]=a[i];
j++;
}
i++;
}
while(i
for(i=0; i
{
for(d=0;d
{
if(c[d]
{
max=c[d];
c[d]=c[d+1];
c[d+1]=max;
}
}
}
for(j=0; j
{
for(d=0;d
{
if(c[d]
{
max=c[d];
c[d]=c[d+1];
c[d+1]=max;
}
}
}
j=0;
i=0;
d=0;
for(j
if(d
{
a[i]=c[d];
d++;
}
else
{
a[i]=a[j];
j++;
}
for(i
cout<
return 0;
}
Ответы
Автор ответа:
0
Решение в прикрепленном файле.
результат работы программы:
n = 15
Array:
92 3 37 69 92 95 72 35 79 77 9 39 56 79 44
Sorted array:
92 3 92 35 79 39 72 69 56 77 44 79 37 95 9
результат работы программы:
n = 15
Array:
92 3 37 69 92 95 72 35 79 77 9 39 56 79 44
Sorted array:
92 3 92 35 79 39 72 69 56 77 44 79 37 95 9
Приложения:
Автор ответа:
0
Ну вообще это однозначно трактуется, если бы нужно было отсортировать по индексу, так бы и было написано. Другое дело, надо ли сохранять при выводе отсортированного массива очередность чет / нечет. По логике, нужно, что я и сделал, но видимо, постстартеру требуется что-то другое.
Автор ответа:
0
Увы, жизнь показывает, что никакой подобной разумной трактовки нет. Люди помещают задания, не указывая даже языка программирования! Я встречал ответ на вопрос о языке: "А что, их много?"
Автор ответа:
0
Поэтому для модераторов оставлено большое поле маневра параграфом 3 Правил: "Проблемы, содержащиеся в вопросе должны быть изложены конкретным, четким и исчерпывающим образом...".
Автор ответа:
0
Это формально позволяет удалить добрую половину задаваемых тут вопросов - было бы желание.
Автор ответа:
0
Если четные ЭЛЕМЕНТЫ по возрастанию, нечетные по убыванию, то нужно поменять 2 строки в сортировке: for (int i=0; i<n-1; i++)
{
for (int j=i+1; j<n; j++)
if (((a[j]>a[i]) && (a[i]%2!=0) && (a[j]%2!=0))
|| ((a[j]<a[i]) && (a[i]%2==0) && (a[j]%2==0)))
swap(a[i],a[j]);
{
for (int j=i+1; j<n; j++)
if (((a[j]>a[i]) && (a[i]%2!=0) && (a[j]%2!=0))
|| ((a[j]<a[i]) && (a[i]%2==0) && (a[j]%2==0)))
swap(a[i],a[j]);
Похожие вопросы
Предмет: Немецкий язык,
автор: pinkmilkshake215
Предмет: Биология,
автор: dianakorobko275
Предмет: Химия,
автор: kisawika
Предмет: Химия,
автор: Ая2014
Предмет: Математика,
автор: polyaora1