| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 656 人关注过本帖
标题:新手继续请教一个简单函数调用问题 大家看看我做错在哪呢?
只看楼主 加入收藏
砍一刀
Rank: 1
等 级:新手上路
帖 子:36
专家分:3
注 册:2010-6-6
结帖率:0
收藏
已结贴  问题点数:10 回复次数:9 
新手继续请教一个简单函数调用问题 大家看看我做错在哪呢?
1,编写一个程序,程序用要调用名为one_three()的函数。该函数要在一行中显示单词"one",再调用TWO()的函数,然后再另一行中显示单词“three”。函数two()应该能在一行中显示单词"two",函数调用之后要显示"done"。这样,最后的输出结果应该如下所示。
starting now;
one
two
three
done!
搜索更多相关主题的帖子: 函数 
2010-06-08 15:54
砍一刀
Rank: 1
等 级:新手上路
帖 子:36
专家分:3
注 册:2010-6-6
收藏
得分:0 
我自己写了一点 写不下去了
不知道如何让输出时自动返回上一行

#include<stdio.h>
void one_three(void);
void two(void);
int main (void)
{
printf("starting now;\n");
one_three();
two();
printf("done!\n");
return 0;
}
void one_three(void)
{
printf("one\n");
printf("\n");
printf("three\n");

}
void two(void)
{
printf("two\n");
printf("\n");
}
2010-06-08 15:55
砍一刀
Rank: 1
等 级:新手上路
帖 子:36
专家分:3
注 册:2010-6-6
收藏
得分:0 
麻烦大家帮我看一下 指点一下知识点
2010-06-08 15:56
yl_524
Rank: 2
等 级:论坛游民
帖 子:35
专家分:43
注 册:2010-3-17
收藏
得分:5 
#include<stdio.h>
void one_three(void);
void two(void);
int main (void)
{
printf("starting now;\n");
one_three();
//two(); //注释掉了
printf("done!\n");
return 0;
}
void one_three(void)
{
printf("one\n");
printf("\n");
two();//新加入一行;也就是把主函数中注释掉的函数调用放到这里调用
printf("three\n");

}
void two(void)
{
printf("two\n");
printf("\n");
}
//此改动后可以得到一楼的输出结果
2010-06-08 16:19
yl_524
Rank: 2
等 级:论坛游民
帖 子:35
专家分:43
注 册:2010-3-17
收藏
得分:0 
程序是指令的集合,指令是自顶向下逐步执行的。想在输出‘one’后想输出‘two’,就把输出‘two'的指令代码放在输出'one'的指令代码之后(在输出‘three’之前)。

[ 本帖最后由 yl_524 于 2010-6-8 16:29 编辑 ]
2010-06-08 16:27
砍一刀
Rank: 1
等 级:新手上路
帖 子:36
专家分:3
注 册:2010-6-6
收藏
得分:0 
YL_524
你说的让我是似懂非懂
如何在输入one three后 插入two呢
2010-06-08 16:35
砍一刀
Rank: 1
等 级:新手上路
帖 子:36
专家分:3
注 册:2010-6-6
收藏
得分:0 
我按照你的思路
做出来了
#include<stdio.h>
void one_three(void);
void two(void);
int main (void)
{
printf("starting now;\n");
one_three();
printf("done!\n");
return 0;
}
void one_three(void)
{
printf("one\n");
two();
printf("three\n");

}
void two(void)
{
printf("two\n");

}
2010-06-08 16:37
yl_524
Rank: 2
等 级:论坛游民
帖 子:35
专家分:43
注 册:2010-3-17
收藏
得分:0 
你的意思是要在显示的时候实现把‘two’移到‘three’之前显示,明白了。这个我不会,如果让 one two three在同一行显示的话倒是可以,就是利用转义字符‘\b’:退格,将当前位置移到前一列。
这样,你在void one_three(void),void two(void)两个函数里面就要谨慎使用‘\n’了。
#include<stdio.h>
void one_three(void);
void two(void);
int main (void)
{
printf("starting now;\n");
one_three();
two();
printf("done!\n");
return 0;
}
void one_three(void) //更改该函数为
{
printf("one           ");//空格位置是留给放置‘two’用的
printf("three\n");

}
void two(void) //更改该函数为
{
printf("\b\b\b\b\b\b\b\b\b");
printf("two");
}
我没有编译查看结果。如果有错误,可自己尝试改正。
2010-06-08 17:32
huxiangwenhu
Rank: 4
等 级:业余侠客
威 望:1
帖 子:191
专家分:262
注 册:2010-6-1
收藏
得分:5 
回复 8楼 yl_524
提出意见,前面的程序你写对了,后面修改的话也不可能实现楼主的想法。
#include<stdio.h>
void one_three(void);
void two(void);
int main (void)
{
printf("starting now;\n");
one_three();
two();
printf("done!\n");
return 0;
}
void one_three(void) //更改该函数为
{
printf("one           ");//空格位置是留给放置‘two’用的
printf("three\n");

}
void two(void) //更改该函数为
{
printf("\b\b\b\b\b\b\b\b\b");
printf("two\n");
}
当调用one_three()时,已经输出three了,当再调用two(),你的退格符也不可能跳到three之前去吧?
所以输出将会是:
one            three
two
done
阁下想法是好的,呵呵!
2010-06-08 18:10
砍一刀
Rank: 1
等 级:新手上路
帖 子:36
专家分:3
注 册:2010-6-6
收藏
得分:0 
8楼   9楼
主要是我没理解题目
正确的答案应该是主函数调用one_three函数之后,在one_three函数里调用two函数,
这样就简单直接多了
之所有用用\b退格键 是我自己产生了歧义
也希望你们能正确理解
不管如何 先谢谢你们了
PS:这里的学习氛围真的很不错哦
很高兴能找到这样的论坛
2010-06-09 19:04
快速回复:新手继续请教一个简单函数调用问题 大家看看我做错在哪呢?
数据加载中...
 
   



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

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