十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
c语言中一个完整的函数由函数首部和函数体构成,而且定义函数时两者都是必不可少的。
成都创新互联-专业网站定制、快速模板网站建设、高性价比蓬溪网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式蓬溪网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖蓬溪地区。费用合理售后完善,十载实体公司更值得信赖。
函数定义的一般形式如下:
类型标识符
函数名(形参表列)
//
这是函数首部
//
以下{
}内的是函数体
{
说明部分
执行部分
}
举例说明如下:
//
定义一个不带返回值的函数
//
函数功能:输出形参的值
void
fun(int
a,
int
b)
{
printf("%d,
%d\n",
a,
b);
}
//
定义一个带返回值的函数
//
函数功能:返回2个整数数的最大值
int
fun(int
a,
int
b)
{
return
ab
?
a
:
b;
}
首先,c中有且仅有一个主函数,所以第一步,你必须的把两个函数改成其他名字:
#include stdio.h
int function1()
{
int len=0;
int len2=0;
FILE* stream;
FILE* stream1;
FILE* stream2;
char buf[50];
char buf1[50];
char buf2[50];
char text[1024];
printf("input anfile path to open:");
scanf("%s",buf);
stream=fopen(buf,"r+");
fseek(stream,0,SEEK_END);
len=ftell(stream);
printf("the file %s length is %d!\n",buf,len);
len2 = len/2;
printf("intput 2 file name: \n");
scanf("%s%s",buf1,buf2);
fseek(stream,0,SEEK_SET);
stream1=fopen(buf1,"w+");
stream2=fopen(buf2,"w+");
fread(text,len2,1,stream);
fwrite(text,len2,1,stream1);
fread(text,len-len2,1,stream);
fwrite(text,len-len2,1,stream2);
fclose(stream);
fclose(stream1);
fclose(stream2);
return 0;
}
int function2()
{
int len=0;
int len2=0;
FILE* stream;
FILE* stream1;
char buf[50];
char buf1[50];
char text[1024];
printf("input anfile path to open:");
scanf("%s",buf);
stream=fopen(buf,"r+");
fseek(stream,0,SEEK_END);
printf("intput another file name: \n");
scanf("%s",buf1);
stream1=fopen(buf1,"r+");
fseek(stream1,0,SEEK_END);
len=ftell(stream1);
fseek(stream1,0,SEEK_SET);
fread(text,len,1,stream1);
fwrite(text,len,1,stream);
fclose(stream);
fclose(stream1);
remove(buf1);//remove the another file
return 0;
}
//第二部:如果有条件的调用它们的话,加上if语句或者switch语句,基本上都是这样,此外,你可以把function1 和function2放入一个头文件中,然后包含这个头文件亦行。
void main()
{
function1();
function2();
}
#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;
}
#include stdlib.h
#include stdio.h
typedef
struct list{
char data;
struct list *next;
} SLIST;
SLIST *creat(){
int c;
SLIST *h,*s,*r;
h=(SLIST *)malloc(sizeof(SLIST));/*生成头结点*/
r=h;/*r指向当前表尾*/
scanf("%d",c);/*读入数据*/
while(c!=1){/*未读到数据结束标志时进入循环*/
s=(SLIST *)malloc(sizeof(SLIST));/*生成一个新结点*/
s-data=c;/*读入的数据存入新结点的data域*/
r-next=s;/*新结点连到表尾*/
r=s;/*r指向当前表尾*/
scanf("%d",c);/*读入数据*/
}
r-next='\0';/*置链表结束标志*/
return h;/*返回表头指针*/
}
void take(SLIST *head){
SLIST *p;
p=head-next;/*p指向头结点后的第一个结点*/
if(p=='\0')
printf("Linklist is null!\n");/*链表为空(只有头结点)*/
else{/*链表非空*/
printf("head");
do{
printf("-%d",p-data);/*输出当前结点数据域中的值*/
p=p-next;/*p指向下一个结点*/
}while(p!='\0');/*未到链表尾,继续循环*/
printf("-end\n");
}
}
int main(){
SLIST *p;
p=creat();
take(p);
}
我在我的VS2010里面编译运行,没有崩溃
输入
2 3 1
输出
head-2-3-end
输入
1
输出
Linklist is null!