сортировка массива

Ответить
nipel
Сообщения: 6
Зарегистрирован: 09 апр 2013, 22:43

24 апр 2013, 23:02

Всем здравствуйте, я написал тут программу, но она работает неправильноЖ берет 4 вводимых числа и одно число из "мусора", помогите решить эту проблему.

Код: Выделить всё

#include <stdio.h>
#define N 5
void main()
{ int i, j, A[N],nMin,c;
  printf("vvod 5 cil chisel\n");
  for(i=1;i<N+1;i++)
  { printf("A[%d]=",i);
    scanf("%i",&A[i]);
    }
  for (i=0;i<N-1;i++)
  { nMin=i;
    for (j =i+1;j<N;j++)
    if (A[j]<A[nMin])
    nMin=j;
    if (nMin!=i)
      { c=A[nMin];
         A[nMin]=A[i];
         A[i]=c;
      }
   }
  printf("otsortirov mas:\n");
  for (i=0;i<N;i++)
  printf("%d",A[i]);
  getch();
  clrscr();
}
serge_sb
Сообщения: 3
Зарегистрирован: 25 апр 2013, 01:56

25 апр 2013, 02:20

Индексация массива начинается с нуля.
Вы заполняете массив начиная с i = 1, соответственно в элементе A[0] остается мусор.
Мало того, последнее число записывается за пределами массива A[5].
Вот так
for(i = 0; i < N; i++)
{
printf("A[%d]=",i);
scanf("%i",&A);
}
должно работать
Ответить