The question says Write a menu driven program that finds the minimum, maximum and sum of 3 numbers (integers). All the numbers entered should be unique. (i.e. no two numbers should be same .Check this condition)

Please adhere to the following guidelines.
a. Write a function that finds the smallest of the numbers.
b. Write a function that finds the largest of the numbers.
c. Write a function to display the following menu.
d. Write a function to display the following menu.

****************
* *
* Please select one of the following :- *
* *
* 1. Sum of the numbers *
* 2. Smallest of numbers *
* 3. Largest of numbers *
* 4. Exit *
* Enter your choice (1-4) *
*****************

The program should use the function to display the above menu. Then, the function should execute based on the selection made by the user. After a function is executed, the menu should appear again (there by allowing the user to perform another action). The program only terminates if 4 is entered.

I did the following in Borland c++:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int calculate_sum(int,int,int);
int calculate_maximum(int,int,int);
int calculate_minimum(int,int,int);

void print_results(int,int,int)

void main()
{

   char request[20];
   char menu[9];
   int num1,num2,num3,sum,min,max;
   int choice;
	do
   {
   	printf("Please enter the word \"menu\" to see the desired request that can be made in this program\n");
      scanf("%s",request);
      strcpy(menu,request);
  // prompting user to input the word menu so that they can see the menu in the calling function
   if (menu == 'menu')
      {
	     	void print_menu()
      else
       	printf("\nPlease re-enter request\n");
         scanf("%s",request);
      }
 	// inputing the choice either 1,2 or 3 from the menu printed above from the calling function.
       scanf("%s",choice);
 	// testing for the number 1,2 or three entered by user,any one can allow the program to run.
    if(((choice=='1')||(choice=='2')||(choice=='3')))
    {
    	printf("\n Please enter number 1\n");
   	scanf("%d",&num1);
   	printf("\n Please enter number 2\n")
    	scanf("%d",&num2);
   	printf("\n Please enter number 3\n");
      scanf("%d",&num3);
    	while ((((((num1==num2)||(num1==num3)||(num2==num1)||num2==num3)||(num3==num1)||num3==num2))))))
    	{
    		printf("\n Please re-enter three unique,no two numbers can be the same \n");
      	scanf("%d%d%d",&num1,&num2,&num3);
    	}
    	printf("\n");
    	printf("THANK YOU FOR SUCCESFULLY ENTERING THE PROGRAM!!!\n");
    	printf("\n");
      // testing to see what choice was entered by user above
      if(choice=='1')
      {
    		sum= calculate_sum(num1,num2,num3);
      }
      else if(choice=='2')
      {
   		max= calculate_max(num1,num2,num3);
      }
      else if(choice=='3')
      {
   	min= calculate_min(num1,num2,num3);
      }
     // printing results after calculation takes place.
    	print_results(sum,max,min);
    	else
      // a number other than 1,2 or 3 was entered so program exits
      exit(0);
      }
     }
    }
      while	(((choice!=1)||(choice!=2)||(choice!=3)))
      printf("You entered a value other than the values shown, ***Good Bye***\n");
}
      getchar();
      getchar();

     	// Calling function for sum of numbers
      int calculate_sum(int n1,int n2, int n3)
      {
      	int sum_of_numbers;
         	 sum_of_numbers= (n1+n2+n3);
         return sum_of_numbers;
      }
    	// Calling funtion for maximum and minimum number
      int calculate_maximum(int n1,int n2, int n3)
      {
         int max;
         	max=n1;
         if(n2>max)
        	{
           max=n2;
         }
           else if(n3>max)
           max=n3;

     	   return max;
       }
      int calculate_minimum(int n1,int n2, int n3)
      {
      	int min;
     		 min=n1;
     		 if(n2<min)
          {
      		min=n2;
          }
        	 else if(n3<min)
      		min=n3;

        return min;
      }
      void print_values(sum_of_numbers,max,min)
      {
      	printf("Sum of numbers is:\t %d\n",sum_of_numbers);
         printf("Maximum number is:\t %d\n",max);
         printf("Minimum number is:\t %d\n",min);
      }
      void print_menu()
      {
      	printf("\n***************\n");
         printf("\n");
         printf("*                                      *\n");
         printf("\n  Please select one of the following:-\n");
         printf("\n*                                    *\n");
         printf("\n*   1. Sum of the Numbers            *\n");
         printf("\n*   2. Smallest of Numbers           *\n");
         printf("\n*   3. Largest of Numbers            *\n");
         printf("\n*	  4. Exit								  *\n");
         printf("\n* Enter your Choice(1-4):				  *\n");
      }

Dani AI

Generated

Quick diagnosis (matches the errors you posted): the compiler messages come from a few simple issues that cascade into many errors.

  • Line 11 (declaration syntax error): your prototype void print_results(int,int,int) needs a terminating semicolon.
  • Lines ~73–74 (unexpected } / declaration terminated incorrectly): you have a function-style declaration or misplaced text inside main (for example void print_menu() where you meant to call print_menu();) and mismatched braces/parentheses.
  • Line 111 (“style of function definition is now obsolete”): you used K&R-style parameter syntax like void print_values(sum,max,min) instead of modern prototypes with types.
  • Other problems found in the posted code: comparing strings with == or multi-character single quotes (use strcmp), using scanf("%s", choice) when choice is an int, mismatched function names (calculate_max vs calculate_maximum, print_results vs print_values), missing semicolons on several printf lines, and a risky strcpy(menu, request) into a smaller buffer.

Fixes to apply (small, test-driven steps)

  1. Add the missing semicolon to the prototype and use consistent names for prototypes and definitions.
  2. Replace the “string equals” check and the stray declaration inside main with a call:
if (strcmp(request, "menu") == 0)
    print_menu();
else
    puts("Please re-enter request");
  1. Read the menu choice as an integer and compare numerically:
if (scanf("%d", &choice) != 1) { /* handle bad input */ }
if (choice == 1) { sum = calculate_sum(...); }
  1. Use modern prototypes for definitions:
void print_results(int sum, int max, int min) { /* ... */ }
  1. Simplify the uniqueness check:
while (num1 == num2 || num1 == num3 || num2 == num3) { ... }

Extra tips: make buffers large enough (or use fgets), compile early and fix the first error then recompile, enable warnings (or Borland’s maximum warnings), and keep function calls/names consistent. was right about the missing semicolon and the parameter-type issue — fix those first and many errors will disappear. If you still get errors, post the updated (shortened) source and the exact compiler messages.

Recommended Answers

All 6 Replies

post a few errors (and the line numbers they appear on)

post a few errors (and the line numbers they appear on)

seriously i don't understand what ur tryingt o say here

Well, your compiler must have spit out a bunch of error messages. What are they? Post a few of them and the line numbers associated with the errors (your compiler tells you that too).

thesewere some errors

i got theses
quwstion 1 assignment 2.cpp(11,5):Declaration syntax error
quwstion 1 assignment 2.cpp(73,2):unexpected}
quwstion 1 assignment 2.cpp(74,16):Declaration terminated incorrectly
quwstion 1 assignment 2.cpp(74,16):Declaration terminated incorrectly
quwstion 1 assignment 2.cpp(111,40):style of function definition is now obsolete

sorry don't know why that came those words are deca

The first error is because line 9 does not end with a semicolon.


line 111: you have to declare the data types of each parameter (int, float, double or something else???)

Fix those then recompile to see remaining errors.

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.