This program suppose to read 10 integer values and then add in array list and display it..But my promblem is why i can't stop entering values even it reach 10 instead it suppose to.. and it is something like infinite loops..Please give me some advice or tips..Thanks...
Code:
#include<stdio.h>
#define SIZE 10
typedef struct
{
int number[SIZE];
unsigned size;
}IntList;
void makeList(IntList *);
unsigned findLocation(IntList *, int);
void addItem(IntList *, int, unsigned);
void displayItem(IntList *);
int main()
{
int input;
IntList sample;
int i;
Code:
/* i think the problem is in here */
makeList(&sample);
printf("Enter any 10 integers values : ");
while ( scanf( "%d", &input) == 1 && sample.size < 10 )
addItem(&sample, input, findLocation(&sample, input));
displayItem(&sample);
return 0;
}
void makeList(IntList *ptr)
{
if (ptr!=NULL)
ptr->size=0;
}
unsigned findLocation(IntList *data, int searchItem)
{
unsigned i, found;
if (data != NULL)
for (i=0, found = 0; i < (data->size) && !found; i++)
{
if (data->number[i] > searchItem)
{
i--;
found = 1;
}
}
return i;
}
void addItem(IntList *data, int newItem, unsigned location)
{
unsigned i;
for (i=data->size;i>location;i--)
data->number[i] = data->number[i-1];
data->number[location] = newItem;
}
void displayItem(IntList *data)
{
unsigned i;
for (i=0; i < data->size; i++)
printf("\nNumber[%d]=%d", i, data->number[i]);
}