如何通过scanf将值传递给函数

时间:2012-10-24 23:43:26

标签: c input scanf

我正在尝试创建的程序中有一个简单的问题。我似乎无法弄清楚如何能够传递某人为我的变量“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;

}

2 个答案:

答案 0 :(得分:1)

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

归结为* numerator = 1且* denominator =未定义(因为denom1从未初始化)。即它将“out值”设置为“常量”。你可能想做的事情如下:

int num1 = *numerator;
int denom1 = *denominator;

答案 1 :(得分:0)

在Simplify()函数中:

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

in(1)denom1具有未定义的值。所以当你使用时: (2)denom1仍然有一个未定义的值 在(3) 分母有一个未定义的值