[菜鸟提问]自己写c错误啦 帮忙看看
本鸟这几天开始学 c语言遇到问题啦
#include <stdio.h>
#include<math.h>
struct rational {
int x,y;
};
int up_part(struct rational z)
{
return z.x;
}
int down_part(struct rational z)
{
return z.y;
}
struct rational make_rational(int x, int y)
{
struct rational z;
z.x = x;
z.y = y;
return z;
}
int Euclid(int a; int b)
{
if (a%b==0)
return b;
else
return Euclid(b,a%b);
}
struct rational simpe_r(int x, int y)
{
struct rational z;
z.x = x/Euclid(x,y);
z.y = y/Euclid(x,y);
return z;
}
struct rational add_rational(struct rational z1, struct rational z2)
{
return simp_r (up_part(z1) * down_part(z2) + up_part(z2) * down_part(z1),
down_part(z1) * down_part(z2));
}
struct rational sub_rational(struct rational z1, struct rational z2)
{
return simp_r (up_part(z1) * down_part(z2) - up_part(z2) * down_part(z1),
down_part(z1) * down_part(z2));
}
struct rational mul_rational(struct rational z1, struct rational z2)
{
return simp_r (up_part(z1) *up_part(z2),down_part(z1) * down_part(z2));
}
struct rational div_rational(struct rational z1, struct rational z2)
{
return simp_r (up_part(z1) *down_part(z2),down_part(z1) * up_part(z2));
}
int print_rational(struct rational z)
{
if (up_part(z) == 0)
printf ("0\n");
else if (down_part(z) == 0)
{
printf("it's error!\n");
return 1;
}
else
printf ("%d/%d\n", up_part(z), down_part(z));
return 0 ;
}
int main(void)
{
struct rational z3, z4, z5, z6;
struct rational z1 = { -3, 4 };
struct rational z2 = { 1, 7 };
z3 = add_rational(z1, z2);
print_rational(z3);
z4 = sub_rational(z1, z2);
print_rational(z4);
z5 = mul_rational(z1, z2);
print_rational(z5);
z6 = div_rational(z1, z2);
print_rational(z6);
return 0;
} C 菜鸟
[解决办法]
函数参数中间以逗号隔开,不能用分号
int Euclid(int a; int b)
下面函数调用函数名写错,定义的函数名为simpe_r 而你再调用的时候写的全是simp_r 下次写代码的时候要注意哦!
struct rational simpe_r(int x, int y)
{
struct rational z;
z.x = x/Euclid(x,y);
z.y = y/Euclid(x,y);
return z;
}
struct rational add_rational(struct rational z1, struct rational z2)
{
return simp_r (up_part(z1) * down_part(z2) + up_part(z2) * down_part(z1),
down_part(z1) * down_part(z2));
}
struct rational sub_rational(struct rational z1, struct rational z2)
{
return simp_r (up_part(z1) * down_part(z2) - up_part(z2) * down_part(z1),
down_part(z1) * down_part(z2));
}
struct rational mul_rational(struct rational z1, struct rational z2)
{
return simp_r (up_part(z1) *up_part(z2),down_part(z1) * down_part(z2));
}
struct rational div_rational(struct rational z1, struct rational z2)
{
return simp_r (up_part(z1) *down_part(z2),down_part(z1) * up_part(z2));
}