構造体とポインターを使用して、2 つの有理数の加算、乗算、除算を求めるプログラムを作成していました。ポインタで数字を入力するのに問題があります。コードをどのように修正すればよいですか? ありがとう!
#include <stdio.h>
struct rational
{
int nu;
int de;
}*p1,*p2,*p3;
void add()
{
p1->nu = p1->nu*p2->de + p1->de*p2->nu;
p3->de = p1->de * p2->de;
printf("%d\n--\n%d\n",p3->nu,p3->de);
}
void multiply()
{
p3->nu = p1->nu * p2->nu;
p3->de = p1->de * p2->de;
printf("%d\n--\n%d\n",p3->nu,p3->de);
}
void divide()
{
p3->nu = p1->nu * p2->de;
p3->de = p1->de * p2->nu;
printf("%d\n--\n%d\n",p3->nu,p3->de);
}
int main()
{
int a,b,c,d,choice;
printf("Enter the first rational number.\n");
scanf("%d%d",&a,&b);
p1->nu = a;
p1->de = b;
printf("Enter the second rational number.\n");
scanf("%d%d",&c,&d);
p2->nu = c;
p2->de = d;
scanf("%d",&choice);
switch (choice)
{
case 1: add();
break;
case 2: multiply();
break;
case 3: divide();
break;
}
return 0;
}