【发布时间】:2021-06-28 02:30:46
【问题描述】:
这是我需要做的:
定义一个名为“fraction”的结构,其中包含整数成员“numerator”和 “分母。”提示用户以“#/#”的形式输入分数。调用一个函数 “simplFrac”通过将分子和分母除以最大分数来简化分数 公因子并将简化的分数返回给调用函数。打印结果 主要()。
这是我的代码:
#include <stdio.h>
struct fraction {
int numerator;
int denominator;
};
struct fraction simplFrac(struct fraction x);
int main(void) {
struct fraction a;
printf("Enter a fraction in the form #/#: ");
scanf("%i/%i",&a.numerator,&a.denominator);
printf("\n");
printf("The simplified fraction is: %i/%i\n",);
return 0;
}
struct fraction simplFrac(struct fraction x) {
int gcf,remainder;
while (x.numerator != 0)
{
remainder = x.denominator % x.numerator;
x.denominator = x.numerator;
x.numerator = remainder;
}
gcf = x.denominator;
x.numerator = x.numerator / gcf;
x.denominator = x.denominator / gcf;
return x;
}
【问题讨论】:
-
这是一些代码,但有什么问题?
-
struct fraction result; result = simplFrac(a);。其他变体是可能的(在同一语句中声明和初始化,将结果分配回a等),就像任何其他返回值的函数一样。 -
我不认为你的
simplFrac算法是正确的;我认为它总是会返回0/1。试着用一些例子来逐步理解它。
标签: c function data-structures struct fractions