#define CUSTOMERS 10
main( )
{
char first_name[20][10], second_name[20][10],
surname[20][10], name[20][20],
telephone[20][10], dummy[20];
int i,j;
printf("Input names and telephone numbers \n");
printf("?");
for(i=0; i < CUSTOMERS ; i++)
{
scanf("%s %s %s %s", first_name[i],
second_name[i], surname[i], telephone[i]);
/* converting full name to surname with initials */
strcpy(name[i], surname[i] );
strcat(name[i], ",");
dummy[0] = first_name[i][0];
dummy[1] = '\0';
strcat(name[i], dummy);
strcat(name[i], ".");
dummy[0] = second_name[i][0];
dummy[1] = '\0';
strcat(name[i], dummy);
}
/* Alphabetical ordering of surnames */
for(i=1; i <= CUSTOMERS-1; i++)
for(j=1; j <= CUSTOMERS-i; j++)
if(strcmp (name[j-1], name[j]) > 0)
{
/* Swaping names */
strcpy(dummy, name[j-1]);
strcpy(name[j-1], name[j]);
strcpy(name[j], dummy);
/* Swaping telephone numbers */
strcpy(dummy, telephone[j-1]);
strcpy(telephone[j-1],telephone[j]);
strcpy(telephone[j], dummy);
}
/* printing alphabetical list */
printf("\nCUSTOMERS LIST IN ALPHABETICAL ORDER \n\n");
for(i=0; i < CUSTOMERS ; i++)
printf(" %-20s\t %-10s\n", name[i], telephone[i]);
}
Output
Input names and telephone numbers
?Gottfried Wilhelm Leibniz 711518
Joseph Louis Lagrange 869245
Jean Robert Argand 900823
Carl Freidrich Gauss 806788
Simon Denis Poisson 853240
Friedrich Wilhelm Bessel 719731
Charles Francois Sturm 222031
George Gabriel Stokes 545454
Mohandas Karamchand Gandhi 362718
Josian Willard Gibbs 123145
CUSTOMERS LIST IN ALPHABETICAL ORDER
Argand,J.R 900823
Bessel,F.W 719731
Gandhi,M.K 362718
Gauss,C.F 806788
Gibbs,J.W 123145
Lagrange,J.L 869245
Leibniz,G.W 711518
Poisson,S.D 853240
Stokes,G.G 545454
Sturm,C.F 222031