Массив с сортировкой и выводом количества нулей - 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;
}
Объяснение кода листинга программы
- Объявление переменных:
- arr[10] - массив из 10 целых чисел;
- 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; }
- for( i = 0 ; i < 10 ; i++ )
{
- Вывод исходного массива:
- printf(
Our array\n); - for (i = 0; i < 10; i++)
- printf(
%d\n,arr[i]);
- printf(
- printf(
- Подсчет количества нулей в массиве:
- for (i = 0; i < 10; i++)
- if (arr[i] == 0)
- k++;
- if (arr[i] == 0)
- for (i = 0; i < 10; i++)
- Сортировка массива:
- 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; } } }
- if(arr[j] > arr[j+1])
{
- for(j = 0 ; j < 10 - i -1 ; j++)
{
- for(i = 0 ; i < 10-1 ; i++)
{
- Вывод отсортированного массива:
- printf(
\nSorted Array\n\n); - for(i = 0; i < 10; i++)
- printf(
%d\n,arr[i]);
- printf(
- printf(
- Вывод количества нулей:
- printf(
\nThe numbers of ZEROs: %d\n\n, k);
- printf(
- Завершение программы:
- return 0;