На самом деле ваш код работает нормально, просто позаботьтесь о некоторых вещах.Я перечислю их здесь.
- Не используйте 'index' в качестве имени переменной, это встроенная функция.
- Если переменная объявлена глобально в Cвам не нужно объявлять это локально.Если вы делаете, локальное значение переменной только изменяется, глобальное значение остается неизменным.
Вы печатаете окончательный результат перед переводом новой строки, которая в сочетании с окончательным результатом delindex вводит вас в заблуждение.Я предоставил обновленную версию кода:
#include<stdio.h>
int a[20]={11,12,13,15,12,14,16,17,11,12,14,15,18,12},i,j,ind=13,x,y,p;
void delindex(int n)
{
int i,j,ii;
if(n==ind)
{
ind--;
}
else
{
for(i=n;n<ind;n++)
{
j=i+1;
a[i]=a[j];
}
ind--;
}
printf("\n");
for(ii=0;ii<=ind;ii++)
{
printf("%d\t",a[ii]);
}
}
int main()
{
int i;
for(i=0;i<=ind;i++)
{
printf("%d\t",a[i]);
}
printf("\n");
for(x=0;x<ind;x++)
{
for(y=x+1;y<=ind;y++)
{
if(a[x]==a[y])
{
delindex(y);
}
}
}
printf("\n\nFinal Result: \n");
for(i=0;i<=ind;i++)
{
printf("%d\t",a[i]);
}
return 0;
}