How JustAnswer Works:

  • Ask an Expert
    Experts are full of valuable knowledge and are ready to help with any question. Credentials confirmed by a Fortune 500 verification firm.
  • Get a Professional Answer
    Via email, text message, or notification as you wait on our site.
    Ask follow up questions if you need to.
  • 100% Satisfaction Guarantee
    Rate the answer you receive.

Ask lifesaver Your Own Question

lifesaver
lifesaver, Computer Software Engineer
Category: Programming
Satisfied Customers: 5962
Experience:  Several years of intensive programming and application development experience in various platforms.
16528259
Type Your Programming Question Here...
lifesaver is online now
A new question is answered every 9 seconds

Create a program that uses a structure array to hold contact

Customer Question

Create a program that uses a structure array to hold contact information for your friends. The program should allow the user to enter up to five friends and print the phone book's current entries. Create functions to add entries in the phone book and to print valid phone book entries. Do not display phone book entries that are invalid or NULL (0).
Submitted: 7 years ago.
Category: Programming
Expert:  lifesaver replied 7 years ago.
Hi,
Still online.Here's your second code compiled succesfully:-

**************************************************************
struct phonebook
{
char name[100];
long int phone;
};

int main()
{
struct phonebook myphonebook[5];
int i;
for(i=0;i<5;i++)
{
printf("\n Enter name of friend:-\n");
scanf("%s",&myphonebook.name );
printf("\n Enter phone number of friend:-\n");
scanf("%ld",&myphonebook.phone );
}
for(i=0;i<5;i++)
{
printf("\n Friend name %s phone number is %ld \n",myphonebook.name,myphonebook.phone);
}
return 1;
}
**************************************************************

lifesaver and 2 other Programming Specialists are ready to help you
Customer: replied 7 years ago.
Im confused, why does it say this is my second code? is there another?
Expert:  lifesaver replied 7 years ago.
Hi,
No i meant the code to your second question.The first question i have already answered.This code is independent and runs fine but i need to modify it a bit.I forgot to add the functions as mentioned in question.Excuse me for this.I will post soon.
Customer: replied 7 years ago.
ok
Expert:  lifesaver replied 7 years ago.
Hi,
Its 2:30 pm here.I am going to take a break.Code will be ready tommorow morning a few hours from now.
Customer: replied 7 years ago.
it is 4pm here. I will be waiting, Thank You!
Expert:  lifesaver replied 7 years ago.
Hi,
I have created this menu driven program for you that meets the requirement.Required some extra time and effort though.
You will understand its beauty when you run it.

Here is the code:-
****************************************************************
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX 5

struct phonebook {
char name[100];
unsigned long int phone;
} myphonebook[MAX];

void init_list(void);
void enter(void);
void remove(void);
void list(void);
int menu_select(void), find_free(void);

int main(void)
{
char choice;

init_list(); /* initialize the structure array */
for(;;) {
    choice = menu_select();
      switch(choice) {
          case 1: enter();
        break;
          case 2: remove();
           break;
          case 3: list();
           break;
          case 4: exit(0);
      }
}

//return 0;
}

/* Initialize the list. */
void init_list(void)
{
register int t;

for(t=0; t<MAX; ++t) myphonebook[t].name[0] = '\0';
}

/* Get a menu selection. */
int menu_select(void)
{
char s[80];
int c;

printf("1. Enter a name\n");
printf("2. Delete a name\n");
printf("3. List the file\n");
printf("4. Quit\n");
do {
      printf("\nEnter your choice: ");
      gets(s);
      c = atoi(s);
} while(c<0 || c>4);
return c;
}

/* Input addresses into the list. */
void enter(void)
{
int slot;
char s[80];

slot = find_free();

if(slot==-1) {
      printf("\nList Full");
      return;
}

printf("Enter name: ");
gets(myphonebook[slot].name);

printf("Enter phone: ");
gets(s);
myphonebook[slot].phone= strtoul(s, '\0', 10);
}

/* Find an unused structure. */
int find_free(void)
{
register int t;

for(t=0; myphonebook[t].name[0] && t<MAX; ++t) ;

if(t==MAX) return -1; /* no slots free */
return t;
}

/* Delete an address. */
void remove(void)
{
register int slot;
char s[80];

printf("enter record #: ");
gets(s);
slot = atoi(s);

}

/* Display the list on the screen. */
void list(void)
{
register int t;

for(t=0; t<MAX; ++t) {
      if(myphonebook[t].name[0]) {
          printf("%s\n", myphonebook[t].name);
          printf("%lu\n\n", myphonebook[t].phone);
      }
}
printf("\n\n");
}
*******************************************************************
Hope your problem is solved.Show this program to anyone and they will be very impressed.

Related Programming Questions