| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 781 人关注过本帖
标题:为什么最后的结果不是9 8 7 6 5 4 3 2 1????
只看楼主 加入收藏
jg658237
Rank: 7Rank: 7Rank: 7
来 自:青藏高原
等 级:黑侠
帖 子:224
专家分:529
注 册:2013-8-8
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:10 
为什么最后的结果不是9 8 7 6 5 4 3 2 1????
#include<stdio.h>
#include<stdlib.h>
void  prn(int num)
{
   printf("%d\n",num);
   if(num>0)
  printf("%d",--num);
}
 
main(void)
{
prn(9);
getchar();
return 0;

system ("pause");
return 0;
}

   
搜索更多相关主题的帖子: include system return 
2013-08-16 20:44
kabe卡芘
Rank: 1
等 级:新手上路
帖 子:12
专家分:8
注 册:2013-8-3
收藏
得分:0 
想要這個結果:9 8 7 6 5 4 3 2 1
要用那麼複雜的代碼嗎?不是用while可以了?
抱歉..新手純粹一問...
2013-08-16 20:58
木蕊
Rank: 2
等 级:论坛游民
帖 子:32
专家分:26
注 册:2013-6-22
收藏
得分:0 
prn函数中if改成while   num变成后自增
2013-08-16 21:11
love云彩
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:青藏高原
等 级:贵宾
威 望:53
帖 子:3663
专家分:11416
注 册:2012-11-17
收藏
得分:0 
稍微修改一下你的代码:
程序代码:
#include<stdio.h>
void  prn(int num)
{
   printf("%d\n",num);
   if(num>1)
       prn(--num);
}

int main()
{
prn(9);
return 0;
}


思考赐予新生,时间在于定义
2013-08-16 21:12
kabe卡芘
Rank: 1
等 级:新手上路
帖 子:12
专家分:8
注 册:2013-8-3
收藏
得分:0 
以下是引用木蕊在2013-8-16 21:11:59的发言:

prn函数中if改成while   num变成后自增


如果改成后自增那結果不是會變成123456789而不是987654321了?
2013-08-16 21:15
jg658237
Rank: 7Rank: 7Rank: 7
来 自:青藏高原
等 级:黑侠
帖 子:224
专家分:529
注 册:2013-8-8
收藏
得分:0 
回复 4楼 love云彩
还是不对,要在里面加一个gtchar(),才可以  但我不理解为什么加getchar

武功再高也怕菜刀.
2013-08-16 21:33
love云彩
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:青藏高原
等 级:贵宾
威 望:53
帖 子:3663
专家分:11416
注 册:2012-11-17
收藏
得分:0 
以下是引用kabe卡芘在2013-8-16 21:15:09的发言:



如果改成后自增那結果不是會變成123456789而不是987654321了?

用while也可以,但不是像他所说的那样。
void prn(int num)
{
   while(num>0)
   printf("%3d",num--);//就是先打印num,然后再自减
}
这段代码是没有错的,可能我的手机输入法有问题,注意大于号以及自减符号

思考赐予新生,时间在于定义
2013-08-16 21:41
love云彩
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:青藏高原
等 级:贵宾
威 望:53
帖 子:3663
专家分:11416
注 册:2012-11-17
收藏
得分:5 
没有一定要求要写getchar函数吧?
getchar函数概念你懂不懂?

一、概念:
  getchar 由宏实现:#define getchar() getc(stdin)。getchar有一个int型的返回值.当程序调用getchar时.程序就等着用户按键.用户输入的字符被存放在键盘缓冲区中.直到用户按回车为止(回车字符也放在缓冲区中).当用户键入回车之后,getchar才开始从stdin流中每次读入一个字符.getchar函数的返回值是用户输入的第一个字符的ASCII码,如出错返回-1,且将用户输入的字符回显到屏幕.如用户在按回车之前输入了不止一个字符,其他字符会保留在键盘缓存区中,等待后续getchar调用读取.也就是说,后续的getchar调用不会等待用户按键,而直接读取缓冲区中的字符,直到缓冲区中的字符读完为后,才等待用户按键

思考赐予新生,时间在于定义
2013-08-16 21:51
jg658237
Rank: 7Rank: 7Rank: 7
来 自:青藏高原
等 级:黑侠
帖 子:224
专家分:529
注 册:2013-8-8
收藏
得分:0 
回复 8楼 love云彩
你是牛人,我经常看见你.

武功再高也怕菜刀.
2013-08-16 22:27
love云彩
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:青藏高原
等 级:贵宾
威 望:53
帖 子:3663
专家分:11416
注 册:2012-11-17
收藏
得分:0 
回复 9楼 jg658237
在下也是新手。

思考赐予新生,时间在于定义
2013-08-16 22:34
快速回复:为什么最后的结果不是9 8 7 6 5 4 3 2 1????
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019865 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved