结构体含有两个成员分子和分母,定义结构体后,在主函数里面定义两个结构体变量。同时要求新求得的分数进行化简。代码如下:
#include<stdio.h>
struct fraction
{
int Numerator;
int Denominator;
};
int divi_1(int a, int b)
{
int divi = 0;
while (a%b)
{
divi = a % b;
a = b;
b = divi;
}
divi = b;
return divi;
}
int main()
{
struct fraction f1;
struct fraction f2;
int a,b;
scanf("%d/%d %d/%d",&f1.Numerator,&f1.Denominator,&f2.Numerator,&f2.Denominator);
a = f1.Numerator*f2.Denominator-f2.Numerator*f1.Denominator;
b = f1.Denominator*f2.Denominator;
if(a%b==0)
printf("%d\n",a/b);
else
printf("%d/%d\n",a/divi_1(a,b),b/divi_1(a,b));
return 0;
}
该回答引用ChatGPT
请参考:
#include <stdio.h>
struct fraction {
int numerator;
int denominator;
};
int gcd(int a, int b) {
if (b == 0) return a;
return gcd(b, a % b);
}
struct fraction reduceFraction(struct fraction f) {
int common = gcd(f.numerator, f.denominator);
f.numerator /= common;
f.denominator /= common;
return f;
}
struct fraction subtractFractions(struct fraction a, struct fraction b) {
struct fraction result;
result.numerator = a.numerator * b.denominator - b.numerator * a.denominator;
result.denominator = a.denominator * b.denominator;
return reduceFraction(result);
}
int main() {
struct fraction fraction1, fraction2;
printf("Enter the first fraction: ");
scanf("%d/%d", &fraction1.numerator, &fraction1.denominator);
printf("Enter the second fraction: ");
scanf("%d/%d", &fraction2.numerator, &fraction2.denominator);
fraction1 = reduceFraction(fraction1);
fraction2 = reduceFraction(fraction2);
struct fraction result = subtractFractions(fraction1, fraction2);
if (result.denominator == 1) {
printf("The difference is: %d\n", result.numerator);
} else {
printf("The difference is: %d/%d\n", result.numerator, result.denominator);
}
return 0;
}
以下答案引用自GPT-3大模型,请合理使用:
#include #include using namespace std; int main() { vector v; int a, b, c, d, e, f; cin >> a >> b >> c >> d >> e >> f; v.push_back(a); v.push_back(b); v.push_back(c); v.push_back(d); v.push_back(e); v.push_back(f); cout << endl; for (size_t i = 0; i < v.size(); ++i) cout << v[i] << " "; cout << endl; }