1

我在尝试创建的程序中有一个简短的问题。我似乎无法弄清楚如何传递某人为我的“denom”变量输入的值,以便可以在我创建的函数中成功使用它。帮助将不胜感激。

#include <stdio.h>

//Global Variables
int num, denom;
void simplify(int *numerator, int *denominator);

int main () {
    int num1, denom1;
    //Prompt User as to what program is
    printf("Fraction Simplifier\n");
    printf("===================\n");

    //Ask User for Numerator and Denominator
    printf("Numerator: ");
    scanf("%d", &num);
    printf("Denominator: ");
    scanf("%d", &denom);

    //Call Function
    simplify(&num1, &denom1);

    //Display final output
    printf("%d / %d = %d / %d\n", num, denom, num1, denom1);

    return 0;
}

//Simplify function
void simplify(int *numerator, int *denominator)
{

    int num1, denom1;
    num1 = 1;
    num = num1;
    denom = denom1;

    num1 = num1 / num1;
    denom1 = denom1 / num1;
    *numerator = num1 ;
    *denominator = denom1;

}
4

2 回答 2

1

您的simplify()方法甚至不尝试使用传递的值。

它归结为 *numerator = 1 和 *denominator = 未定义(因为 denom1 从未初始化)。即它将“输出值”设置为“常量”。您可能打算执行以下操作:

int num1 = *numerator;
int denom1 = *denominator;
于 2012-10-24T23:53:53.807 回答
0

在 Simplify() 函数中:

*int num1, denom1;             
denom = denom1;* (1)
denom1 = denom1 / num1; (2)
*denominator = denom1;* (3)

在 (1) denom1 中有未定义的值。因此,当您使用时: (2)denom1 仍然有一个未定义的值,并且在 (3) 中分母有一个未定义的值

于 2012-10-25T00:02:06.497 回答