Переставить элементы массива так, чтобы сначала шли единицы, а затем двойки - C (СИ)

Формулировка задачи:

Задача такова: В массиве с 10 элементами, состоящим из единиц и двоек, сделать так, чтобы сначала были единицы, а затем двойки
#include <stdio.h>
#include <math.h>
#include <conio.h>
#define N 10
main()
{
      int i,k,A[N];
      
printf("\n Vvedite massiv: \n");
for(i=0;i<N;i++)
scanf("%d",&A[i]);
 
k=0;
for(i=0;i<N;i++)
k=k+A[i];
 
for(i=0;i<=k;i++)
A[i]=1;
 
for(i=k+1;i<N;i++)
A[i]=2;
 
for(i=0;i<N;i++)
printf(" %d ", A[i]);
getch();
}

Код к задаче: «Переставить элементы массива так, чтобы сначала шли единицы, а затем двойки - C (СИ)»

textual
#include <stdio.h>
#include <stdlib.h>
 
int comp (const void * a, const void * b) {
  return ( *(int*)a - *(int*)b );
}
 
int main() {
    int arr[10];
    for(int i = 0; i < 10; ++i) scanf("%d", &arr[i]);
 
    qsort(arr, 10, sizeof(int), comp);
 
    for(int i = 0; i < 10; ++i) printf("%d", arr[i]);
 
    return 0;
}

9   голосов, оценка 4.444 из 5


СОХРАНИТЬ ССЫЛКУ
Похожие ответы