ok, so this is what I have.
Code:
#include <stdio.h>
#include <string.h>
#define MAX_NAMES 10
#define MAX_LEN 20
typedef struct {
char first[MAX_NAMES];
char last[MAX_NAMES];
}Name;
int Equal (Name p1, Name p2) {
int i = 0;
if (strcmp (p1.first, p2.first) == 0 && strcmp (p1.last, p2.last) == 0)
i = 0;
else
i = 1;
return i;
}
int main () {
Name names[MAX_NAMES], name;
int ndx, numNames = 0;
scanf("%s%s", name.first, name.last);
for(ndx = 0; ndx < MAX_LEN && names[ndx].first != "END" && names[ndx].last != "END"; ndx++){
scanf("%s%s", names[ndx].first, names[ndx].last);
if (strcmp (names[ndx].first, "END") == 0 && strcmp (names[ndx].last, "END") == 0)
break;
}
for (numNames = 0; numNames < MAX_NAMES; numNames++){
for (ndx = 0; ndx < MAX_NAMES; ndx++){
if (Equal(names[ndx], name) != 0){
strcpy(name.first, names[numNames].first);
strcpy(name.last, names[numNames].last);
strcpy(names[ndx].first, name.first);
strcpy(names[ndx].last, name.last);
}
}
}
for (numNames = 0; numNames < MAX_NAMES; numNames++){
printf("%s%s\n", names[numNames].first, names[numNames].last);
if (strcmp (names[numNames].first, "END") == 0 && strcmp (names[numNames].last, "END") == 0)
break;
}
return 0;
}
it removes only one duplicate and prints out END END though.