кодесурса
«C

Упражнения C: Найти минимальное расстояние между двумя числами в данном массиве

script1adsense2code
script1adsense3code

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

Напишите программу на C, чтобы найти минимальное расстояние между двумя числами в данном массиве.

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

Код C:

#include <stdio.h>
#include <stdlib.h> 
#include <limits.h> 
int findMinDistance(int *input, int n1, int n2, int length)
{
    int pos_one = INT_MAX;
    int pos_two = INT_MAX;
    int d = length+1;
    int newD;
    pos_one = pos_two = d = length;
 
    for (int i = 0; i < length; i++)
    {
        if (input[i] == n1)
            pos_one = i;
        else if (input[i] == n2)
            pos_two = i;
 
        if (pos_one < length && pos_two < length)
        {
            newD = abs(pos_one - pos_two);
            if (d > newD)
                d = newD;
        }
    }
 
    return d == length+1 ? -1 : d;
}
 
int main()
{
    int arr1[] ={7, 9, 5, 11, 7, 4, 12, 6, 2, 11};
    int n = sizeof(arr1)/sizeof(arr1[0]);
    int p = 7;
    int q = 11,i;
   //------------- print original array ------------------	
	printf("The given array is:  \n");
	for(i = 0; i < n; i++)
		{
			printf("%d  ", arr1[i]);
		}
	printf("\n");
//------------------------------------------------------ 
    printf("The minimum distance between %d and %d is:  %d\n", p, q, findMinDistance(arr1, p, q, n));
    return 0;
}

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

 Данный массив:  
7 9 5 11 7 4 12 6 2 11  
Минимальное расстояние между 7 и 11: 1

Блок - схема:

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

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

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

Previous: написать программу на C, чтобы найти пару с заданной разницей.
Далее: Напишите программу на C, чтобы подсчитать все возможные пути от верхнего левого до нижнего правого угла матрицы X n.

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


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code