|
| junkulet (2) | |
| I made a menu program that has 5 menus: add, delete, insert and display record and exit. The program has an array of 20 that is to be filled with unique integers by the user. Here's my program: #include<stdio.h> int array[20]; int dcn; int cntr=0; void add(); void del(); void insert(); void display(); void exit(); main() { int num; printf("Menu\n"); printf("1 - Add Record\n"); printf("2 - Delete Record\n"); printf("3 - Insert Record\n"); printf("4 - Display Record\n"); printf("5 - Exit\n"); scanf("%d",&dcn); if (num==1) { add(); } else if(num==2) { del(); } else if(num==3) { insert(); } else if(num==4) { display(); } else if(num==5); { exit(); } add() { printf("Please enter the value: "); scanf("%d",&array[cntr]); cntr++; printf("1-Add More/2-Return to Menu"); scanf("%d",&dcn); if(dcn==1) { while(cntr<20) { add(); } printf("No space for new!"); return main(); } else { return main(); } } del() { int seg, jr, *p; p = &array[cntr]; printf("Enter the value you want to delete: "); scanf("%d",&seg); for(jr=0;jr<20;jr++) if(*p ==seg) { *p = *p+1; } printf("1-Delete More/2-Return to Menu"); scanf("%d",&dcn); if(dcn==1) { while(*p = '\0') { del(); } printf("No value to delete!"); return main(); } else { return main(); } } insert() { int jun, ong, don, *gin; gin = &array[cntr]; printf("Enter the value where you want to insert: "); scanf("%d",&jun); printf("Enter the vaue you want to insert: "); scanf("%d",&don); for(ong=0; ong<20; ong++) if(*gin==jun) { *gin=don; } return main(); } display() { int rod; printf("Your array elements are as follows:\n\n"); for(rod=0;rod<20;rod++); {printf("%d\t",&array[cntr]); cntr++;} main(); } } I don't know where my program went wrong. I'm only a student and I think there's much better than this. Please help, thanks! I'd tried to encode this in turbo ver.3 and dev c++ but still I don't get it right. | |
Last edited on | |
| Faldrax (324) | |
Hi, please can you edit your post to enclose the code in tags (but use lowercase c) and provide indentation - it is difficult to quickly analyse unformated code:-)Details on how the program is failing would also help. The one thign I did spot at a glance is you have not given function types on the function definitions, and you have return main(); where you want return; | |
| junkulet (2) | |
| in turbo c ver.3, the errors are type mismatch in redelaration of my functions..in dev c++, linker errors. | |
| dgirdhar (6) | |
| Hello, There are some problems in your program, please correct them. 1) Please check the main function It contains following lines of code "scanf("%d",&dcn); if (num==1) {" You are getting the value in dcn variable and applying if condition in num variable, so it will exit without doing anything. So change num to dcn. 2) Second problem: You are calling main function from other functions like add etc. This is not a good way to display a menu. It will cause stack currupt at some point of time due to following reason. main ---> add --> main --> add and so on. In this way you will load main variables in stack n number of time. So your program will crash. Please check it and think something else. | |
This topic is archived - New replies not allowed.
