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()メソッドは、渡された値を使用しようとさえしません。

要約すると、* numberator = 1であり、* denominator =は未定義です(denom1は初期化されないため)。つまり、「outvalues」を「constants」に設定します。あなたはおそらく次のようなことをするつもりでした:

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 に答える