鱼C论坛

 找回密码
 立即注册
查看: 907|回复: 6

[已解决]怎么返回结构体对象的值

[复制链接]
发表于 2020-2-7 11:38:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. #include<stdio.h>
  2. #include<stdlib.h>


  3. int addNum(struct Sort *num);
  4. int getinput(struct Sort *num);


  5. struct Sort
  6. {
  7.         int x;
  8.         struct Sort *next;
  9. };

  10. int getinput(struct Sort *num)
  11. {
  12.         printf("请输入一个整数:");
  13.         scanf("%d",num->x);
  14.         putchar('\n');
  15.         printf("input:%d\n",num->x);
  16.         return num->x;
  17. }

  18. int addNum(struct Sort **head)
  19. {
  20.         struct Sort *num;
  21.         num = (struct Sort *)malloc(sizeof(struct Sort));
  22.         int n;
  23.        
  24.         getinput(num);
  25.         n = getinput(num);
  26.        
  27.         return n;
  28. }

  29. int main(void)
  30. {
  31.         struct Sort *temp;
  32.         struct Sort *num = NULL;
  33.         int n;
  34.        
  35.         printf("输入-1结束输入\n");
  36.         while(1)
  37.         {
  38.                 addNum(&num);
  39.                 n = addNum(&num);
  40.                 printf("%d",n);
  41.                 if (n == -1)
  42.                 {
  43.                         break;
  44.                 }
  45.         }
  46.        
  47.         return 0;
  48. }
复制代码


我想让函数addNum返回用户输入的值来进行判断是否退出循环,但是这个样子返回的值是一大串数字,请问应该如何修改。
最佳答案
2020-2-7 13:53:26
scanf("%d",num->x);
使用
scanf("%d",&num->x);
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-2-7 13:36:36 From FishC Mobile | 显示全部楼层
把30行和45行删掉。他们重复了。每一个函数不要单独调用。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-7 13:53:26 | 显示全部楼层    本楼为最佳答案   
scanf("%d",num->x);
使用
scanf("%d",&num->x);
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-7 19:24:48 | 显示全部楼层
f-wind 发表于 2020-2-7 13:53
scanf("%d",num->x);
使用
scanf("%d",&num->x);

能告诉我为什么吗?不是很理解。num不是指针吗,为什么还要取地址?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-7 19:32:17 | 显示全部楼层
召唤风云 发表于 2020-2-7 13:36
把30行和45行删掉。他们重复了。每一个函数不要单独调用。

这的确也是个BUG,谢谢。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-7 19:51:15 From FishC Mobile | 显示全部楼层
Albertdjy 发表于 2020-2-7 19:24
能告诉我为什么吗?不是很理解。num不是指针吗,为什么还要取地址?

你输入的是x的值,而不是num的值。所以需要取地址。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-7 20:50:05 | 显示全部楼层
召唤风云 发表于 2020-2-7 19:51
你输入的是x的值,而不是num的值。所以需要取地址。

懂了,谢谢指导
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 17:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表