✅ 操作成功!

int是什么函数

发布时间:2023-06-07 作者:admin 来源:文学

int是什么函数

int是什么函数

-

2023年2月19日发(作者:)

函数的定义、写法及使⽤

前⾔

对函数的补充

⼀、函数分类

系统函数:

是操作系统以函数接⼝形式提供的⼀套功能,这些功能:

内存管理、信号处理、⽂件IO、⽂件管理、进程管理、进程通信、线程管理、线程同步、⽹络通信

第三⽅库函数:

由第三⽅提供的,⼀些开源或者收费的代码

MD5验证

JSON序列化和反序列化

glog⽇志记录

⾃定义函数:

为了更好地管理代码,减少冗余把代码封装成函数

注意:⼀个函数尽量控制在50⾏以内,⼀个函数⼀个功能

函数声明:函数声明的⽬的是为了告诉其他代码该函数的调⽤格式

⼆、返回值

返回值类型函数名(类型1形参名1,类型2形参名2,…);

1、C语⾔中函数名全部⼩写,⽤下划线分隔

2、如果不需要参数时,建议写void,不要空着

3、如果不需要返回值,也写void,但是return后不能跟数据

隐式声明:

当调⽤函数之前没有声明和定义,编译器会猜测函数的格式,参数列表会根据调⽤时提供的实参(数据)来猜测,返回值会猜测成int类型

注意:函数定义如果在函数调⽤之前,可以省略函数声明

函数定义:

返回值类型函数名(类型1形参名1,类型2形参名2,…)

{

函数体

returnval;

}

函数调⽤:

函数名(实参1,实参2,…);

注意:返回值会放在调⽤的位置,可以⽴即打印显⽰,或者也可以⽤变量记录下来

三、练习

1、实现⼀个函数,判断整数是否是素数,调⽤该函数显⽰出100~10000之间的所有素数

2、输⼊两个⽇期,计算两个⽇期之间间隔了多少天

3、实现⼀个函数,判断整数是否是回⽂数,调⽤该函数显⽰出1亿-10亿之间的所有回⽂数

4、计算出100的阶乘

5、输⼊⼀个整数,显⽰该整数的补码

练习1代码如下(⽰例):

#include

#include

boolIs_prime(intnum);

intmain(intargc,constchar*argv[])

{

for(inti=100;i<1000;i++)

{

Is_prime(i)&&printf(\"%d\",i);

}

}

boolIs_prime(intnum)

{

for(inti=2;i<=num/2;i++)

{

if(num%i==0)

returnfalse;

}

returntrue;

}

练习2代码如下(⽰例):

#include

#include

intdata(intyear,intmonth,intday);

intmain(intargc,constchar*argv[])

{

printf(\"输⼊第⼀个⽇期:\");

intyear,month,day;

scanf(\"%d-%d-%d\",&year,&month,&day);

intone=data(year,month,day);

printf(\"输⼊第⼆个⽇期:\");

scanf(\"%d-%d-%d\",&year,&month,&day);

inttwo=data(year,month,day);

printf(\"两个⽇期相隔%d天\",abs(one-two));

}

intdata(intyear,intmonth,intday)

{

intsum=0;

for(inti=1;i

{

sum+=365+(i%4==0&&i%100==0||i%400==0);

}

for(inti=1;i

{

if(i==2)

sum+=28+(year%4==0&&year%100==0||year%400==0);

elseif(i==4||i==6||i==9||i==11)

sum+=30;

else

sum+=31;

}

returnsum+=day-1;

}

练习3代码如下(⽰例):

#include

#include

boolis_hw(intnum);

intmain(intargc,constchar*argv[])

{

for(inti=100000000;i<=1000000000;i++)

{

is_hw(i)&&printf(\"%d\",i);

}

}

boolis_hw(intnum)

{

intcopy,new=0;

copy=num;

while(copy)

{

new=new*10+(copy%10);

copy/=10;

}

returnnew==num

}

练习4代码如下(⽰例):

#include

intmain(intargc,constchar*argv[])

{

charrets[256]={1};

intcnt=1;//指向结果接下去要进位的下标

for(inti=2;i<=100;i++)

{

charcarry=0;//进位

for(intj=0;j

{

shortnum=rets[j]*i+carry;

rets[j]=num%10;

carry=num/10;

}

while(carry)

{

rets[cnt++]=carry%10;

carry/=10;

}

}

while(cnt--)

{

printf(\"%d\",rets[cnt]);

}

}

练习5代码如下(⽰例):

#include

voidbm(intnum);

intmain(intargc,constchar*argv[])

{

printf(\"输⼊⼀个整数:\");

intnum;

scanf(\"%d\",&num);

bm(num);

}

voidbm(intnum)

{

intarr[32]={};

for(inti=0;i<32;i++)

{

arr[i]=num>>i&1;

}

for(inti=31;i>=0;i--)

{

printf(\"%d\",arr[i]);

}

}

总结

上⾯的代码仅供参考,也不⼀定是最精简的,⼀些变量名命名⽐较随意,望⼤家不要模仿。

👁️ 阅读量:0