如果调用C语言的自定义函数?

怎么调用C语言的自定义函数呀?比如我下面的小程序应该怎样修改呀?
#include<sdtio.h>
main()
{
hehe()
int i,s;
printf("please input i\n");
scanf("%d",i);
s=i+y;
getch();
}
int hehe(int y)
{
y=y+y;
}
我是刚学C语言的,希望各位专家赐教,谢谢啦

/*
调用函数有2种方式:
(1)直接调用 如:s=hehe(i); 变量=函数名(参数);如无返回值就把变量=去掉
(2)间接调用:用指针函数,指针函数的定义格式
类型(*指针名)(函数的参数类型);这个类型跟你要调用的函数的返回值是一样的
参数类型也跟你要调用的函数的参数类型一样,里面只写类型就行
如你定义了一个函数 int hehe(int i);
那么我可以这样调用它:
int(*p)(int ),s,i;
p=hehe; //指向这个函数
scanf("%d",&i);
s=(*p)(i);
大概就是这样吧,不明白给我留言
*/
#include <stdio.h> //晕你的头文件写成sdtio.h
int main()
{
int hehe(int ); //函数声明应该写明它的返回值和参数类型
int i,s,(*p)()=hehe; //函数指针p指向函数hehe
printf("please input i\n");
scanf("%d",&i); //少了个取地址符号
s=hehe(i); //直接调用
printf("(1)hehe(%d)=%d\n",i,s);
s=(*p)(i); //用指针函数来调用
printf("(2)hehe(%d)=%d\n",i,s);
getch();
return 0;
}
int hehe(int y)
{
return (y=y+y);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-05-18
int hehe(int y)
{
y=y+y;
}
这个函数有输入值和返回值,所以函数应该改为
int hehe(int y)
{
y=y+y;
return y;
}
在主函数中被调用时应该先给一个输入,
是 想在s=i+y;这里被调用吧?,首先主函数中应该先定义y;这句改为
s=i+hehe( y);
第2个回答  2010-05-18
不要按照basic的方法写C语言函数
scanf的用法不对,不知道你程序的目的,建议函数里面写上return y;
虽然这样对于C语言也将就,不过结果依赖编译器

#include<sdtio.h>

int hehe(int y);

main()
{
int i;
printf("please input i\n");
scanf("%d",&i);
printf("%d\n",hehe(i));
getch();
}
int hehe(int y)
{
y=y+y;
return y;
}本回答被提问者采纳
第3个回答  2010-05-18
#include<stdio.h>
main()
{
int hehe(int y);
int i,s;
printf("please input i\n");
scanf("%d",&i);
s=hehe(i);
printf("%d",s);
getch();
}
int hehe(int y)
{
y=y+y;
return y;
}