Задать правильно цикл )

NatasheJkeeenatashka

Допустим дано 8 элементов в массиве. Как задать цикл так, чтобы сравнивались следующие элементы a[1] u a[2]; a[3] u a[4]; a[5] u a[6]; a[7] u a[8] и сразу же выводились на печать ? я пробовала так:
for(i=0;i<n;2)
{
if(a[i]<a[i+1]) printf ("%4d", a[i]);
else printf ("%4d", a[i+1]);
}
но у меня получается какой то бесконечный цикл. Нужно исправить чтото )
7 ответов

NatasheJkeeenatashka

for(i=0;i<n;[COLOR="Red"]++i[/COLOR])


NatasheJkeeenatashka

Вот так
for (i=0; i<= n-1 ; i+=2)
{...}


NatasheJkeeenatashka

NatasheJkeeenatashka, если я правильно вас понял, тогда походу так:
for(i=0;i<n;i+=2)


NatasheJkeeenatashka

спасибо) считает правильно) тока у меня выводятся элементы, которые a[i]. Как сдалать чтобы выводился сначала a[i], а потом a[i+1] (для случая если условие верно) Делаю так if(a[i]


NatasheJkeeenatashka

...printf ("%4d %4d ", a[i],a[i+1]);
В кавычках задается формат вывода (где "%4d %4d "). Если там есть запятые, то и при печати будут, если убрать - не будут.Можно так поставить, тогда всё через запятые будет :
"%4d, %4d, "


NatasheJkeeenatashka

СПАСИБО ОГРОМНОЕ ))) УМНЫЕ ЛЮДИ СУЩЕСТВУЮТ ВСЁ ТАКИ))Добавлено через 46 минут 50 секунд как сделать чтобы массив из 8 элементов разбить на 2 четверки и чтобы внутри этих четверок элементы отсортировались по возрастанию ? начинаю так: max==a[1]; for(i=0;i


NatasheJkeeenatashka

Внутри должен быть обычный алгоритм сортировки, их реализацию можно посмотреть в интернете или здесь, на форуме. Алгоритм сортировки упорядочивает числа массива от 0 до n, а для этой задачи нужно просто изменять пределы сортировки: от 0 до 4, потом от 4 до 8 и т.д. Для этого можно использовать ещё один цикл (как раз который ты написала). Я такой код набросал(примерный, внутри использовал алгоритм сортировки пузырьком.):
void main()
{
    int a[]={6, 8, 0, 6, 4, 8, 2, 6};
    int n=8, i,j,k, x;
 
for( k=0; k<n; k+=4)
    for( i=k; i < k+4; i++) 
        for( j = k+3; j > k; j-- )
            if (a[j-1] > a[j]) 
            {
                x=a[j-1]; 
                a[j-1]=a[j]; 
                a[j]=x;
            }
 
    for( i=0; i < n; i++)printf("%d ", a[i]); //вывод на печать
}