首页 新闻 会员 周边

无返回值函数需要在主函数内部定义吗?为什么删掉定义,程序运行不了呢?小白求助

0
[已解决问题] 解决于 2020-08-04 09:57

无返回值函数需要在主函数内部定义吗?为什么删掉定义,程序运行不了呢?

  • 题目:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来
  • 为什么删除void reverse(int i);程序运行不正常呢(用dev C++)编译的
int main()
{
    int i=5;
    void reverse(int i);
    printf("请输入5个字符");
    reverse(i);
    return 0;
}

程序完整代码如下

/*
利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来
*/
#include <stdio.h> 
int main()
{
    int i=5;
    void reverse(int i);
    printf("请输入5个字符");
    reverse(i);
    return 0;
}

void reverse(int i)
{
	char next;
	if(i<=1)
	{
	next=getchar();
	printf("相反顺序输出结果\40:\40");
    putchar(next);
	}
	else
	{
	next=getchar();
	reverse(i-1);
	putchar(next);
	}
	
}
爵企的主页 爵企 | 菜鸟二级 | 园豆:204
提问于:2020-08-02 15:49
< >
分享
最佳答案
1

你理解的还有些出入,使用一个函数,这个函数必须有声明或者定义(声明之后必须定义),你说的“把调用函数放在主函数前面”应该是错的,应该是把《声明一个函数》,这样的一个操作放在main函数之前,这样子,编译的时候,机器知道有这个一个函数叫做啥啥啥,然后再看看函数的具体操作,最后返回主函数

奖励园豆:5
Conan-jine | 小虾三级 |园豆:1272 | 2020-08-02 21:00

嗯嗯 理解的更加清楚了 感谢!

爵企 | 园豆:204 (菜鸟二级) | 2020-08-03 10:35

@爵企: 有帮助的给个最佳呗

Conan-jine | 园豆:1272 (小虾三级) | 2020-08-03 22:33
其他回答(1)
0

题主知道原因了
因为C语言是从上到下编译的,所以把调用函数放在主函数前面,就不会出错了

爵企 | 园豆:204 (菜鸟二级) | 2020-08-02 16:03
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册