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

  1. Задача такова: В массиве с 10 элементами, состоящим из единиц и двоек, сделать так, чтобы сначала были единицы, а затем двойкиC1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 #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(); }


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;
}


Похожие ответы
  1. Заполнить одномерный массив случайными числами. Вывести на экран все элементы массива, являющимся двухзначными числами. Буду благодарен)))

  1. Привет! Можете помочь в Си? Есть начало, но как именно менять может кто-то подсказать? Дана квадратная матрица действительных чисел размером 6х6. Заменить элементы лежащие ниже главной диагонали соответствующими элементами, лежащими выше главной диагонали, умноженными на максимальный элемент всей матрицыC1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 void form_matr (int *a, int n, int m) {     int i,j;     for (i=0;i*max) *max=*(a+i*m+j);         }     }     printf("max= %d ", *max); }  int main()  {      int n=6, m=6, max, a[6][6];      form_matr(&a[0][0], n, m);      f1(&a[0][0], n, m, &max);      getch();      return 0;  }

  1. Переставить последний элемент массива на место k-ого элемента. При этом k-ый, (k+1)-ый,..., предпоследний элементы сдвинуть вправо на 1 позицию.

  1. Ввести в память машины массив размером N. Заменить все нулевые элементы на минимальный. Замену произвести через макрофункцию.

  1. Что я делаю неверно? Вроде все должно работать, ан-нет, ругается.C1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 #define N 9 #include void main() {     int i = 0, s[N], c = 0, k = 0;     for (i = 0; i < N; i++)     {         scanf_s("%d ", &s[i]);     }     for (i = 0; i < N / 2; i++)     {         c = s[i];         s[i] = s[N - i];         s[N - i] = c;     }     for (i = 0; i < N; i++)         printf("%d ", s[i]);     scanf_s("%d", &k); }

  1. дан двумерный массив. вывести на экран его элементы, сначала элементы первой строки справа налево, затем второй строки с права налево и т.п.

  1. дан двумерный массив. вывести на экран его элементы, сначала элементы первой строки справа налево, затем второй строки с права налево и т.п.

  1. Привет всем. Подскажите, как можно сортануть элементы списка. Есть список книг и нужно упорядочить их по количеству страниц. Вот пример:C1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 #include #include   int main (void) {     typedef struct list     {         char *name;         int pages;         struct list *next;     } list;         list *book1, *book2,*book3;     book1 = book2 = book3 = NULL;         book1 = malloc(sizeof(list));     book1->pages = 200;     book1->next = NULL;         book2 = malloc(sizeof(list));     book2->pages = 150;     book2->next = NULL;         book3 = malloc(sizeof(list));     book3->pages = 300;     book3->next = NULL;         book1->next = book2;     book2->next = book3;     book3->next = NULL;         list *ptr1;     ptr1 = book1;         list *ptr2;     ptr2 = book1;         while(ptr1!=NULL)     {         while(ptr2!=NULL)         {             if(ptr2->next->pages < ptr2->pages)             {                 list *minbook;                 minbook=ptr2->next;                 ptr2->next=ptr2;                 ptr2=minbook;             }                             ptr2=ptr2->next;         }                 ptr1=ptr1->next;     }         ptr1=ptr2;     while(ptr1!=0)     {         printf("%d\n",ptr1->pages);     } }

  1. Добрый день. Помогите, пожалуйста, составить функцию, которая переставляет в обратном порядке k элементов массива A, начиная i-го (числа i и k задается пользователем):A[1], A[2], …, A[i–1], A[i+k], A[i+k–1], …, A[i+1], A[i], A[i+k+1], …, A[n]. Массив динамический.

  1. Здравствуйте. Помогите, пожалуйста, составить функцию, которая меняет местами последний и i-й элементы массива. Массив динамический.