I have a problem. My program runs, but it scan's only one number, and output's only one number, rest of them zero's........ That's wron? Please help...
Code:# include <stdio.h> # include <stdlib.h> struct node { int data; struct node *link; }; struct node *insert(struct node *p){ int n=0; struct node *temp; if(p==NULL){ p=(struct node *)malloc(sizeof(struct node)); if(p==NULL) { printf("Error\n"); exit(0); } printf("Enter an element : "); scanf (" %d", &n); p-> data = n; p-> link = p; } else { temp = p; while (temp-> link != p) temp = temp-> link; temp-> link = (struct node *)malloc(sizeof(struct node)); if(temp -> link == NULL){ printf("Error\n"); exit(0); } temp = temp-> link; temp-> data = n; temp-> link = p; } return (p); } void printlist ( struct node *p ) { struct node *temp; temp = p; printf("The data values in the list are\n"); if(p!= NULL) { do { printf("%d\t",temp->data); temp=temp->link; } while (temp!= p); } else printf("The list is empty\n"); } int main(void) { int n; int x; struct node *start = NULL ; int e=0; int i; printf("Enter number of element : \n "); scanf("%d", &e); for (i=0; i<e; i++) { start = insert ( start); }; printf("The created list is\n"); printlist ( start ); system("PAUSE"); return 0; }