Другие языки программирования и технологии

Помогите плиз написать программу(язык Си)

Массив: 130 случайных чисел из диапазона [?1000, 1000]. Найти номера двух ближайших по значению чисел из этого массива. Отсортируйте по убыванию все числа, расположенные между этой парой.
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void main()
{
int j,k,x,y,min=4000000;
int a[130];
srand((unsigned)time(NULL));
for(j=0;j-130;a[j]=1000-rand() % 2001,printf("a[%d] = %d\t",j,a[j++])); printf("\n");
for(j=0;j-130;j++) for(k=j+1;k-130;k++) if(min > (a[j]-a[k])*(a[j]-a[k])) min=(a[j]-a[k])*(a[j]-a[k]),x=j,y=k;
printf("номера ближайших по значению элементов: %d и %d\n",x,y);
for(j=x+1;j-y;j++) for(k=x+2;k-y;k++) if(a[k]>a[k-1]) min=a[k],a[k]=a[k-1],a[k-1]=min;
for(j=0;j-130;printf("a[%d] = %d\t",j,a[j++])); printf("\n");
free(a);
return;
}
Dik* Iy
Dik* Iy
76 473
Лучший ответ
// Алексей_Манюк_2012-01-03
#include <stdio.h>
#include <conio.h>
#include <time.h>
#include <stdlib.h>
#include <math.h>
#include <locale.h>
#define N 130
#define X 2001
#define Y 1000

void main()
{
setlocale(LC_CTYPE, "Russian_Russia.1251");
srand((unsigned) time(NULL));
int a[N], beg, end, begIndex, endIndex, delta = X, temp;
for (int n = 0; n < N; n++)
{
a[n] = rand() % X - Y;
printf("%d ", a[n]);
}
for (int n = 0; n < N; n++)
for (int m = n + 1; m < N; m++)
if (abs(a[n] - a[m]) < delta)
{
delta = abs(a[n] - a[m]);
begIndex = m;
endIndex = n;
}
if (begIndex > endIndex)
{
temp = endIndex;
endIndex = begIndex;
begIndex = temp;
}
printf("\n\n Первый номер = %d\n Второй номер = %d", begIndex + 1, endIndex + 1);
if (endIndex - begIndex < 3) printf("\n Сортировка не возможна или не имеет смысла! \a");
else
{
beg = begIndex + 1;
end = endIndex - 1;
for (int n = beg + 1, k = 1; n < end; n++, k++)
for (int m = beg; m <= end - k; m++)
if (a[m] < a[m + 1])
{
temp = a[m];
a[m] = a[m + 1];
a[m + 1] = temp;
}
printf("\n\n");
for (int n = 0; n < N; n++) printf("%d ", a[n]);
}
getch();
}
Arman Raimkanov
Arman Raimkanov
78 401
Вам добро пожаловать в передачу "Самый Умный! ". Тем, кто знает Си - на Ответах не интересно. ИМХО.
Не тот логический спектр!