免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: 俯卧撑
打印 上一主题 下一主题

新手,问个简单的问题 [复制链接]

论坛徽章:
1
天蝎座
日期:2013-08-25 10:27:22
21 [报告]
发表于 2008-11-23 15:57 |只看该作者

回复 #18 俯卧撑 的帖子

c的值?
研究scanf的返回值?
man scanf:
RETURN VALUE
       These  functions  return the number of input items successfully matched
       and assigned, which can be fewer than provided for, or even zero in the
       event of an early matching failure.

       The  value EOF is returned if the end of input is reached before either
       the first successful conversion or a matching failure occurs.   EOF  is
       also returned if a read error occurs, in which case the error indicator
       for the stream (see ferror(3)) is set, and errno is  set  indicate  the
       error.

论坛徽章:
1
天蝎座
日期:2013-08-25 10:27:22
22 [报告]
发表于 2008-11-23 16:00 |只看该作者

回复 #19 tyc611 的帖子

这个应该是楼主搞明白c的值。
又发现a、b的值没变要问的问题的答案。

论坛徽章:
0
23 [报告]
发表于 2008-11-23 16:06 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
24 [报告]
发表于 2008-11-23 16:29 |只看该作者
原帖由 chinesedragon 于 2008-11-23 14:42 发表

c=scanf("%d,%d",&a,&b);   这是什么意思??????


哦,不好意思,是我写错了.......应该是
c=swap(a,b);
我去把程序代码改过来

论坛徽章:
1
天蝎座
日期:2013-08-25 10:27:22
25 [报告]
发表于 2008-11-23 16:30 |只看该作者
原帖由 俯卧撑 于 2008-11-23 16:29 发表


哦,不好意思,是我写错了.......应该是
c=swap(a,b);我去把程序代码改过来

你swap有返回值?

论坛徽章:
0
26 [报告]
发表于 2008-11-23 16:39 |只看该作者
原帖由 tyc611 于 2008-11-23 14:33 发表
你的swap是以传值方式传递参数,函数对参数的修改不会影响到实参
要实现swap,要么用引用,要么用指针

指针方式:
void swap(int *x, int *y)
{
    int tmp = *x;
    *x = *y;
    *y = tmp;
}

这个我明白了,但总觉得swap总得干点什么事,所以用c=swap(a,b)想看看他干啥了,结果发现c 的值是2,这个2表示什么?难道就是两个变量数的值?等下我设三个数交换试试,看它是不是 3

论坛徽章:
0
27 [报告]
发表于 2008-11-23 16:40 |只看该作者
原帖由 yangsf5 于 2008-11-23 16:30 发表

你swap有返回值?

嗯,返回值是2 ,我不知道是为什么?

论坛徽章:
0
28 [报告]
发表于 2008-11-23 16:56 |只看该作者
原帖由 俯卧撑 于 2008-11-23 16:40 发表

嗯,返回值是2 ,我不知道是为什么?

swap没有返回值,你的编译器不报错?

论坛徽章:
0
29 [报告]
发表于 2008-11-23 16:58 |只看该作者
全错了,我乱改着试,我都忘了我的程序是那样的了....................
c=scanf("%d,%d",a,b)   //这样的话,输入两个数程序运行后输出3个数,最后数是2
c=swap(a,b)  //这样编译不了

不知道为什么
我原本是想写c=swap(a,b)的,可错写成了 c=scanf("%d,%d",a,b)

[ 本帖最后由 俯卧撑 于 2008-11-23 17:05 编辑 ]

论坛徽章:
0
30 [报告]
发表于 2008-11-23 17:00 |只看该作者
原帖由 tyc611 于 2008-11-23 16:56 发表

swap没有返回值,你的编译器不报错?

我刚看了程序,我的代码还是c=scanf(...)
c=swap(a,b)的话,编译不通过,为什么不能返回值?
看来我得把概念好好再看看

[ 本帖最后由 俯卧撑 于 2008-11-23 17:01 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP