Массив с сортировкой и выводом количества нулей - C (СИ)

Узнай цену своей работы

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

Всем привет, очень нужен код программы: создать случайный массив целых чисел в дипазоне -100 до 100, размерностью 10, и отсортировать по убыванию. Вывести количество нулевых элементов. Сделавшему - небольшое вознаграждение

Решение задачи: «Массив с сортировкой и выводом количества нулей»

textual
Листинг программы
#include <stdio.h>
#include <time.h>
 
int main ()
{ 
    int arr[10];
    int i,j,k=0,t;
 
     srand(time(NULL));
 
    for( i = 0 ; i < 10 ; i++ )
    {
        t = rand() % 2;
        if (t == 1)
            arr[i] = -rand() % 100;
        else
            arr[i] = rand() % 100;  
   }
 
    printf("Our array\n");
    for (i = 0; i < 10; i++)
        printf("%d\n",arr[i]);
 
    for (i = 0; i < 10; i++)
    {
        if (arr[i] == 0)
            k++;
    }
 
     for(i = 0 ; i < 10-1 ; i++) 
     {
      for(j = 0 ; j < 10 - i -1 ; j++) 
      {  
          if(arr[j] > arr[j+1]) 
          {           
             int tmp = arr[j]; arr[j] = arr[j+1] ; arr[j+1] = tmp;
          }
       }
   }
    printf("\nSorted Array\n\n");
     for(i = 0; i < 10; i++)
         printf("%d\n",arr[i]);
 
    printf("\nThe numbers of ZEROs:  %d\n\n", k);
 
    return 0;
}

Объяснение кода листинга программы

  1. Объявление переменных:
    • arr[10] - массив из 10 целых чисел;
    • i, j, k=0, t - целочисленные переменные для работы цикла.
  2. Инициализация генератора случайных чисел:
    • srand(time(NULL));
  3. Заполнение массива случайными числами:
    • for( i = 0 ; i < 10 ; i++ ) {
      • t = rand() % 2;
      • if (t == 1)
        • arr[i] = -rand() % 100;
      • else
        • arr[i] = rand() % 100; }
  4. Вывод исходного массива:
    • printf(Our array\n);
    • for (i = 0; i < 10; i++)
      • printf(%d\n,arr[i]);
  5. Подсчет количества нулей в массиве:
    • for (i = 0; i < 10; i++)
      • if (arr[i] == 0)
        • k++;
  6. Сортировка массива:
    • for(i = 0 ; i < 10-1 ; i++) {
      • for(j = 0 ; j < 10 - i -1 ; j++) {  
        • if(arr[j] > arr[j+1]) {      
          • int tmp = arr[j]; arr[j] = arr[j+1] ; arr[j+1] = tmp; } } }
  7. Вывод отсортированного массива:
    • printf(\nSorted Array\n\n);
    • for(i = 0; i < 10; i++)
      • printf(%d\n,arr[i]);
  8. Вывод количества нулей:
    • printf(\nThe numbers of ZEROs:  %d\n\n, k);
  9. Завершение программы:
    • return 0;

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4 из 5
Похожие ответы