c语言写重载函数:
专注于为中小企业提供成都网站建设、网站制作服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业城子河免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上千余家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
首先明确重载函数的定义:在相同的声明域中的函数名相同的,而参数表不同的,即通过函数的参数表而唯一标识并且来区分函数的一种特殊的函数。
当将要定义一组函数,使它们执行一系列的操作,但是它们是应用在不同的参数类型上的。此时可以选择重载函数。
例如:
上面的三个函数都可以大概地说成判断一组数中的最大值,对于函数的用户来说,他们并不关心函数定义的细节,也就是说他们不关心判断两个整数的大小和判断数组(vector容器)数的大小应该使用不同的函数,而对于程序的设计者来说这可是不得不想到的。程序员必须记住并查找每个函数名。而函数的重载把程序员从这种问题的复杂性中解放了出来,C++提供了这种支持。
上面的三个比较大小的函数可以定义成:
通过参数就可以一眼分辨不同的函数。
#include stdio.h
#includestring.h
int main(void) {
char echo[100] = {0};
// 你的代码
while(1)//无限循环
{
gets(echo);
if(strcmp(echo,"quit")==0)//循环终止的条件
break;
printf("%s\n",echo);
}
return 0;
}
文件中保存的数据有实型有整型,则在读取数据时,均按浮点数据读取就好了。
参考代码:
#include stdio.h
int main()
{
FILE *fp ;
int i,n;
double a[100];
fp=fopen("data.txt", "r") ;
if ( !fp )
{
printf("open file error");
return -1;
}
i=0;
while( i100 ) //控制不能超过数组的大小
{
if ( fscanf(fp, "%lf",a[i] )!= 1 ) //按浮点数读取数据
break;
i++;
}
n=i;
for( i=0;in;i++ ) //输出读到的结果
printf("%g\n", a[i] );
fclose(fp);
return 0;
}
fwrite
功能说明
将数据写至文件
表头文件
stdio.h
函数定义
size_t fwrite (const void *ptr, size_t size, size_t nmemb, FILE *stream)
函数说明
fwrite()用于将数据写入文件中。参数stream为已打开文件的文件类型指针;ptr为指向存放写入数据内存的指针;总共写入nmemb个单元的数据,每单元有size个字节。
返 回 值
函数调用成功返回实际写入的数据单元的数目;失败或已到文件尾时,可能返回一个比参数nmemb小的值。
相关函数
fopen,fread,fseek
C语言中的POW函数使用:
#includestdio.h
#defineACCURACY100
doublefunc1(doublet,intn);
doublefunc2(doubleb,intn);
doublepow2(doublea,doubleb);
intmain(){
printf("%lf",pow2(5.21,4.11));
return0;
}
doublepow2(doublea,doubleb){
if(a==0b0){
return0;
}
elseif(a==0b=0){
return1/0;
}
elseif(a0!(b-(int)b0.0001||(b-(int)b0.999))){
return1/0;
}
if(a=2a=0){
doublet=a-1;
doubleanswer=1;
for(inti=1;iACCURACY;i++){
answer=answer+func1(t,i)*func2(b,i);
}
returnanswer;
}
elseif(a2){
inttime=0;
while(a2){
a=a/2;
time++;
}
returnpow2(a,b)*pow2(2,b*time);
}
else{
if((int)b%2==0){
returnpow2(-a,b);
}
else{
return-pow2(-a,b);
}
}
}
doublefunc1(doublet,intn){
doubleanswer=1;
for(inti=0;in;i++){
answer=answer*t;
}
returnanswer;
}
doublefunc2(doubleb,intn){
doubleanswer=1;
for(inti=1;i=n;i++){
answer=answer*(b-i+1)/i;
}
returnanswer;
}
扩展资料
C++提供以下几种pow函数的重载形式:
doublepow(doubleX,intY);
floatpow(floatX,floatY);
floatpow(floatX,intY);
longdoublepow(longdoubleX,longdoubleY);
longdoublepow(longdoubleX,intY);
使用的时候应合理设置参数类型,避免有多个“pow”实例与参数列表相匹配的情况。
其中较容易发生重载的是使用形如:
intX,Y;
intnum=pow(X,Y);
这是一个比较常用的函数,但是编译器会提醒有多个“pow”实例与参数列表相匹配。
可以使用强制类型转换解决这个问题:num=pow((float)X,Y);
前面弄的那个格式错乱了!所以重新弄了一遍,这次应该没问题了!
(1)无参函数的定义一般形式:
类型说明符 函数名()
{
类型说明符
语句
}
例如: void Hello()
{
printf("Hello,world");
}
(2)有参函数的定义一般形式:
类型说明符 函数名(形式参数表)
{
类型说明符
语句
}
例如: int max(int a,int b)
{
if(ab)
return a;
else
return b;
}
其中类型说明符指明了本函数的类型,函数的类型实际上是函数返回值的类型,它们通常是C语言的
基本数据类型.