кодесурса
«C

Упражнения на C: проверяет, появляются ли элементы в несортированном массиве последовательно или нет

script1adsense2code
script1adsense3code

C Массив: Упражнение-92 с раствором

Напишите программу на C, которая проверяет, появляются ли элементы в несортированном массиве последовательно или нет.

Пример решения:

Код C:

#include<stdio.h> 
#include<stdlib.h>
#include <stdbool.h>
  
int FindMin(int arr1[], int n); 
int FindMax(int arr1[], int n); 
  
bool areConsecutive(int arr1[], int n) 
{ 
  if ( n <  1 ) 
    return false; 
  int min_no = FindMin(arr1, n); 
  int max_no = FindMax(arr1, n); 
  if (max_no - min_no  + 1 == n) 
  { 
      bool *checked = (bool *) calloc (n, sizeof(bool)); 
      int i; 
      for (i = 0; i < n; i++) 
      { 
         if ( checked[arr1[i] - min_no] != false ) 
           return false; 
         checked[arr1[i] - min_no] = true; 
      } 
      return true; 
  } 
  return false; 
} 
  
int FindMin(int arr1[], int n) 
{ 
  int min_no = arr1[0]; 
  for (int i = 1; i < n; i++) 
   if (arr1[i] < min_no) 
     min_no = arr1[i]; 
  return min_no; 
} 
  
int FindMax(int arr1[], int n) 
{ 
  int max_no = arr1[0]; 
  for (int i = 1; i < n; i++) 
   if (arr1[i] > max_no) 
     max_no = arr1[i]; 
  return max_no; 
} 
  
int main() 
{ 
    int arr1[]= {7, 4, 3, 5, 6, 2}; 
//    int arr1[]= {7, 4, 4, 5, 6, 2};
//    int arr1[]= {7, 4, 9, 5, 6, 3};
	  int i;
	  int arr_size = sizeof(arr1)/sizeof(arr1[0]);	  
   //------------- print original array ------------------	
	printf("The given array is:  \n");
	for(i = 0; i < arr_size; i++)
		{
			printf("%d  ", arr1[i]);
		}
	printf("\n");
//-----------------------------------------------------------  	
    int n = sizeof(arr1)/sizeof(arr1[0]); 
    if(areConsecutive(arr1, n) == true) 
        printf("The appearence of elements in the array are consecutive."); 
    else
        printf("The appearence of elements in the array are not consecutive."); 
    return 0; 
} 

Пример вывода:

 Данный массив:  
7 4 3 5 6 2  
Появление элементов в массиве является последовательным.
Данный массив:  
7 4 4 5 6 2  
Появление элементов в массиве не является последовательным.
Данный массив:  
7 4 9 5 6 3  
Появление элементов в массиве не является последовательным.

Блок-схема 1:

«Блок-схема:

Блок-схема 2:

«Блок-схема:

Редактор кода программирования C:

Улучшите этот пример решения и опубликуйте свой код через Disqus.

Предыдущий: Учитывая несортированный массив определенного размера. Напишите программу на C, чтобы найти минимальную длину подмассива, чтобы при сортировке этого массива весь массив был отсортирован.
Далее: Напишите программу на C для альтернативной перестановки положительных и отрицательных чисел в заданном массиве.

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code