扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
c语言中一个完整的函数由函数首部和函数体构成,而且定义函数时两者都是必不可少的。
成都创新互联公司是一家专注于成都做网站、成都网站设计、成都外贸网站建设和资阳托管服务器的网络公司,有着丰富的建站经验和案例。
函数定义的一般形式如下:
类型标识符
函数名(形参表列)
//
这是函数首部
//
以下{
}内的是函数体
{
说明部分
执行部分
}
举例说明如下:
//
定义一个不带返回值的函数
//
函数功能:输出形参的值
void
fun(int
a,
int
b)
{
printf("%d,
%d\n",
a,
b);
}
//
定义一个带返回值的函数
//
函数功能:返回2个整数数的最大值
int
fun(int
a,
int
b)
{
return
ab
?
a
:
b;
}
第一个是在do~while中保证输入的数是大于0的或是等于-1的,否则一直循环要求输入正确的数。第二个在while循环中,只要输入的数不是-1就一直循环要求输入。从输入数据的本质讲这两个scanf没有什么区别,都是输入一个整数,只是对输入数据的范围要求不一,写两个是便于代码对输入数据范围的处理。
不知道你用的是什么编译器,如果用的是VC的话,可以尝试下我的做法:
创建两个源代码文件:1.cpp和2.cpp
1.cpp中内容:
#includestdio.h
#include"2.cpp"/*采用包含命令调用2.cpp中的函数*/
int max(int x,int y)
{
return xy?x:y;
}
int main()
{
int a,b,m,n;
a=10;
b=30;
m=max(a,b);
n=min(a,b);
printf("%3d%3d\n",m,n);
return 0;
}
2.cpp中内容:
int min(int x,int y)
{
return xy?x:y;
}
把这两个源代码放到一个文件夹下,编译并运行1.cpp即可。注意,2.cpp中没有main函数,所以不能直接编译2.cpp。其实由于最终1.cpp和2.cpp要连接到一起形成一个可执行文件1.exe,所以2.cpp中也不能有main函数。
void b(void);
void a(void)
{
b();
}
void b(void)
{
a();
}
望采纳!
到底是什么意思呢?
像这样吗?
struct
SLIST
a,b,c,*p;
a.data='a';
b.data='b';
c.data='c';
p=a;
a.next=b;
b.next=c;
c.next='\0';
if(p==‘\0’)//这样应该是0而不是O
printf(“Linklist
is
null!\n”);/*链表为空(只有头结点)*/
else
/*链表非空*/
{
printf(“head”);
do
{printf(“-%d”,p-data);/*输出当前结点数据域中的值*/
p=p-next; /*p指向下一个结点*/
}
while(p!=‘\0’); /*未到链表尾,继续循环*/
printf(“-end\n”);
#includestdio.h
int Common(int m,int n) //求最大公约数
{
int t = m%n;
while(t) //欧几里得算法求最大公约数
{
m = n;
n = t;
t = m%n;
}
return n;
}
int Common1(int m,int n) //求最小公倍数
{
return m*n/Common(m,n);
}
int main()
{
int m,n;
printf("请输入两个整数\n");
scanf("%d%d",m,n);
printf("最大公约数为:%d\n",Common(m,n));
printf("最小公倍数为:%d\n",Common1(m,n));
return 0;
}
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流