Hello
can someone help me to complete a program that allows the user to input names
and for the output it should prints the names in alphabetical order.

starting would be something like that.

#include <stdio.h> 

struct sort_names 
{ 
char node_str [80]; 
struct sort_names *next; 

};

Recommended Answers

All 4 Replies

the code isn't complete . I tried modifying a little bit but it

Untitled 40.c:7:11: fatal error: 'conio.h' file not found
        #include <conio.h>
                 ^
1 error generated.

didn't wok.

is there code that didn't use <conio.h> and use <stdlib.h> or <string.h> which I'm familiar with.

I looked at that code and didn't see where you couldn't comment out conio.h.

Remember you didn't specify what compiler or such. So any code will do. I took it to an online .c compiler and changed it a bit.

Runs now.

/*******************************************************************
    PROGRAM TO SORT NAMES ALPHABETICALLY USING LINKED LIST
********************************************************************/


#include<stdio.h>
#include<conio.h>
#include <stdlib.h>
#include <string.h>
  struct name
     {
      char info[20];
      struct name *link;
      }*ptr,*start,*node;
    typedef struct name list;
int main()
{
 void create(void);
 void disp(void);
 void sort(void);
 // clrscr();
 printf("Program to enter the names and sort them using linked list.");
 create();   //fun to enter the names
 printf(" The contents of the list were : ");
 disp();     //fun to display the data
 sort();     //fun to sort the data
 printf("After sorting :");
 printf("The contents of the list are : ");
 disp();

 getch();
}

//-------------------------------------------

   void create(void)
     {
      char ch='y';
      node=(list *)malloc(sizeof(list));
      start=node;
      while(ch=='y')
       {
    printf("Enter the name :");
    gets(node->info);
    ptr=node;
    node=(list *)malloc(sizeof(list));
    ptr->link=node;
    printf("Want to continue?(y/n)");
    fflush(stdin);
    scanf("%c",&ch);
    if(ch=='n')
      break;
    ch='y';
    }
       ptr->link=NULL;
      }

//-------------------------------------------

   void disp(void)
    {
       ptr=start;
       while(ptr!=NULL)
     {
      printf("   %s",ptr->info);
      ptr=ptr->link;
     }
     }

//-------------------------------------------

     void sort(void)
    {
     int comp(char [],char []);
     int i;
     char temp[20],s1[20],s2[20];
     list *ptr2;
     for(ptr=start;ptr!=NULL;ptr=ptr->link)
       {
     for(ptr2=ptr->link;ptr2!=NULL;ptr2=ptr2->link)
       {
     strcpy(s1,ptr->info);
     strcpy(s2,ptr2->info);
     i=comp(s1,s2);
     if(i==1)
       {
    strcpy(temp,ptr->info);
    strcpy(ptr->info,ptr2->info);
    strcpy(ptr2->info,temp);
    }
    }
      }
     }

//-------------------------------------------


        int comp(char s1[], char s2[]) {
   return s1 == s2;
}

I'm sure you can fix it up from here at http://www.onlinecompiler.net/ccplusplus

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.