首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

[初学者提问]自己写c异常啦 帮忙看看

2013-08-01 
[菜鸟提问]自己写c错误啦 帮忙看看本鸟这几天开始学 c语言遇到问题啦#include stdio.h#includemath.hs

[菜鸟提问]自己写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));
}

热点排行