【发布时间】:2015-01-25 22:55:57
【问题描述】:
我的函数 getThreeIntegers 有问题。我如何正确地用指针编写它并让它返回结果?当我运行它时,所有内容都显示为 0。我正在努力编写正确的格式。
#include <stdlib.h>
#include <stdio.h>
#define pause system("pause")
#define cls system("cls")
#define flush fflush(stdin)
//Prototype Functions Here
void displayAverage(int n1, int n2, int n3);
void displayLowest(int n1, int n2, int n3);
void displayProduct(int n1, int n2, int n3);
void displaySum(int n1, int n2, int n3);
void getMenu();
char getUserChoice();
int getThreeIntegers(int *num1, int *num2, int *num3);
main() {
//Declare Variables Here
char choice = ' '; //used by menu
int num1 = 0, num2 = 0, num3 = 0;
do{
choice = getUserChoice();
switch(choice) {
case 'A':
getThreeIntegers(&num1, &num2, &num3);
pause;
break;
case 'B':
displaySum(num1, num2, num3);
pause;
break;
case 'C':
displayProduct(num1, num2, num3);
pause;
break;
case 'D':
displayAverage(num1, num2, num3);
pause;
break;
case 'E':
displayLowest(num1, num2, num3);
pause;
break;
case 'F':
printf("Goodbye! \n\n");
pause;
break;
default:
printf("Invalid Selection...\n\n");
pause;
break;
} // end switch
}while(choice != 'F');
} // end main
void displayAverage(int num1, int num2, int num3) {
float average = 0.0;
int sum = num1 + num2 + num3;
average = sum/3;
printf("The average of the integers is: %.2lf\n", average);
} //end displayAverage
void displayLowest(int num1, int num2, int num3) {
int lowest;
int a = 0, b = 0, c = 0;
if(a < b && a < c)
lowest = a;
printf("The lowest integer is: %i\n", a);
} // end displayLowest
void displayProduct(int num1, int num2, int num3) {
int product;
product = num1*num2*num3;
printf("The product of the integers is: %i\n", product);
} // end displayProduct
void displaySum(int num1, int num2, int num3) {
int sum;
sum = num1 + num2 + num3;
printf("The sum of the integers is: %i\n", sum);
} // end displaySum
void getMenu() { //displays menu onto output
cls;
printf("\t MAIN MENU\n");
printf("*************************\n\n");
printf("A. Enter three integers.\n");
printf("B. Display the sum.\n");
printf("C. Display the product.\n");
printf("D. Display the average. \n");
printf("E. Display the lowest number. \n");
printf("F. Quit. \n\n");
printf("*************************\n");
printf("Enter user choice: ");
return;
} // getMenu
char getUserChoice(){
char result;
getMenu(); //call to function
scanf("%c", &result); //user enters their choice
result = toupper(result); //converts char to capital
flush;
return result;
} // end getChoice
int getThreeIntegers(int *n1, int *n2, int *n3) {
printf("Enter first integer: ");
scanf("%i", &n1);
printf("Enter second integer: ");
scanf("%i", &n2);
printf("Enter third integer: ");
scanf("%i", &n3);
flush;
return n1, n2, n3;
} //end getThreeIntegers
【问题讨论】:
-
scanf("%i", &n1);-->scanf("%i", n1);。同上。displayLowest也是错误的。 -
return n1, n2, n3;表示return n3;类型也不同。 -
非常感谢!如何编写 displayLowest 的函数?
-
你需要比较三个东西:
n1、n2和n3。我不想放弃确切的代码来做到这一点。如果您有 3、4 和 5。您将比较前两个数字,并将其中最小的数字与第三个数字进行比较以获得最小的数字。 -
如MIN(MIN(num1, num2), num3)
标签: c function pointers choice