gpt4 book ai didi

c - 如何输入结构指针

转载 作者:太空宇宙 更新时间:2023-11-04 02:09:30 24 4
gpt4 key购买 nike

我正在编写一个程序,使用结构体和指针求出两个有理数的加法、乘法和除法。我在用指针输入数字时遇到问题。我的代码应该如何更正?谢谢!

#include <stdio.h>
struct rational
{
int nu;
int de;
}*p1,*p2,*p3;
struct rational 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);
}
struct rational multiply()
{
p3->nu = p1->nu * p2->nu;
p3->de = p1->de * p2->de;
printf("%d\n--\n%d\n",p3->nu,p3->de);
}
struct rational 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,choice;
printf("Enter the first rational number.\n");
scanf("%d%d",&p1->nu,&p1->de);
printf("Enter the second rational number.\n");
scanf("%d%d",&p2->nu,&p2->de);
scanf("%d",&choice);
switch (choice)
{
case 1: add();
break;
case 2: multiply();
break;
case 3: divide();
break;
}
return 0;
}

最佳答案

  1. 您已经声明了指向 struct rational 的指针,但没有指定它们实际指向任何此类结构。例如:

    struct rational rat_a;
    p1 = & rat_a;
  2. 您将函数声明为返回 struct rational(即 struct rational add()),但它们似乎没有返回任何内容。如果一个函数不返回任何东西,它应该被声明为 void - void add()

  3. 为什么使用指向结构的指针而不是结构本身? (如果在您的代码中声明为全局)

关于c - 如何输入结构指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16115595/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com