用c语言编写函数getSum(int a[3][3])用于实现两个分数相加,要求代码简洁
时间: 2023-11-27 15:02:28 浏览: 35
好的,以下是简洁的代码实现:
```c
#include <stdio.h>
struct Fraction {
int numerator; // 分子
int denominator; // 分母
};
struct Fraction getSum(int a[3][3]) {
struct Fraction sum = {0, 1}; // 初始化为0
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
sum.numerator = sum.numerator * a[i][j] + a[i][j+1] * sum.denominator;
sum.denominator *= a[i][j+1];
}
}
for (int i = sum.numerator > sum.denominator ? sum.denominator : sum.numerator; i > 1; i--) {
if (sum.numerator % i == 0 && sum.denominator % i == 0) {
sum.numerator /= i;
sum.denominator /= i;
break;
}
}
return sum;
}
int main() {
int a[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
struct Fraction sum = getSum(a);
printf("%d/%d\n", sum.numerator, sum.denominator);
return 0;
}
```
这个实现与之前的实现基本相同,只是在循环中使用了 `int` 类型的变量来代替循环外声明的变量,并省略了一些空格和注释,使代码看起来更加简洁。