首页 > 其他分享 >笔记(函数)

笔记(函数)

时间:2022-12-10 15:33:04浏览次数:46  
标签:arr return 函数 int 笔记 ret printf main

c语言中函数分为:库函数和自定义函数

​https://cplusplus.com/reference/clibrary/​​ (C library)

​https://zh.cppreference.com/mwiki/index.php?title=%E9%A6%96%E9%A1%B5&variant=zh-hans​

int main(){

char arr1[] = "bit";
char arr2[20] = "########";
strcpy(arr2, arr1);
printf("%s\n", arr2);
return 0;
}

笔记(函数)_字符串

字符串 到\0时 此字符串结束

关于替换 函数

//形式参数只有在函数被调用时才会 实例化(开辟内存空间),当函数调用完后,被实例化
//的形参会被销毁
//当实参传给形参的时候,形参其实是实参的一份临时拷贝,对形参的修改是不会改变实参
void swap1(int x, int y) {
int tmp = 0;
tmp = x; // 此时x形参的地址 和 实际a实参的地址不一样
x = y; // 此时y形参的地址 和 实际b实参的地址不一样
y = tmp; //最后发现交换的是xy内地址的值,a和b地址内的值比没有交换
}
void swap2(int* x, int* y) {
int tmp = 0;
tmp = *x;
*x = *y;
*y = tmp;
}

int main() {
int a = 10;
int b = 20;
printf("a = %d b = %d \n", a, b);
//swap1(a, b); 值传递
swap2(&a, &b); // 传递地址
printf("a = %d b = %d \n", a, b);
return 0;
}

求素数


int is_prime(int n) {
int j = 0;
for (j = 2; j < n; j++)
{
if (n % j == 0) {
return 0;
}
}
return 1;
}

int main() {
int i = 0;
for (i = 100; i<=200; i++)
{
if (is_prime(i) == 1) {
printf("%d ", i);
}
}
return 0;
}

函数 二分查找法

        //本质上 arr 是一个指针
int brnary_search(int arr[], int k, int sz) {
int left = 0;
int right = sz - 1;
while (left <= right)
{
int mid = (left + right) / 2;
if (arr[mid] < k) {
left = mid + 1;
}
else if (arr[mid] > k) {
right = mid - 1;;
}
else
{
return mid;
}
}
return -1;
}

int main() {
int arr[] = {1,2,3,4,5,6,7,8,9,10};
int k = 7;
int sz = sizeof(arr) / sizeof(arr[0]);

//传递过去的是数组arr 首元素的地址 ,so 需传递数组的长度
//int ret = brnary_search(arr, k);

int ret = brnary_search(arr, k,sz);
if (ret == -1) {
printf("找不到指定的数字");
}
else {
printf("找到了,下标是,%d \n", ret);
}
return 0;
}

递归

void print(int n) {

if (n > 9) {
print(n/10);
}
printf("%d ", n%10);

}

int main() {
int n = 0;
scanf("%d", &n);
print(n);
return 0;
}

笔记(函数)_字符串_02

计算字符串长度

int my_strlen1(char* str) {
//使用局部变量的方式
int count = 0;
while (*str != '\0') {
count++;
str++;
}
return count;
}
int my_strlen2(char* str) {
//使用递归的方式
if (*str != '\0') {
return 1 + my_strlen1(str + 1);
}
else {
return 0;
}
}

阶乘

int fac(int n) {
if (n <= 1) {
return 1;
}
else {
return n * fac(n - 1);
}
}

描述第n个斐波那契数

int Fib(int n) {
if (n <= 2) {
return 1;
}
else {
return Fib(n - 1) + Fib(n - 2);
}
}
int main() {
int n = 0;
int ret = 0;
scanf("%d", &n);
ret = Fib(n);
printf("ret = %d \n", ret);
return 0;
}
//迭代 求
int Fib(int n) {
int a = 1;
int b = 1;
int c = 1;
while (n > 2) {
c = a + b;
a = b;
b = c;
n--;
}
return c;
}


标签:arr,return,函数,int,笔记,ret,printf,main
From: https://blog.51cto.com/u_11158451/5927590

相关文章

  • Vue2(笔记29) - 脚手架 - mixin混入
    mixin混入所谓混入,就是几个组件共享一个配置,可局部混入,也可全局混入;第一步:先建个混入文件,配置写进去,再export 出来;新建mixin.js 文件: exportconstcommonConfig={......
  • 算法图解笔记
    编写递归函数时,必须告诉它何时停止,因此,每个递归函数有两个部分:基线条件(basecase)和递归条件(recursivecase)。递归条件指的是函数调用自己,而基线条件则指的是......
  • Linux笔记
    https://www.processon.com/view/link/6394245b0e3e744af16d433e ......
  • #yyds干货盘点# 歌谣学前端之react笔记之学习之类组件
    前言我是歌谣我有个兄弟巅峰的时候排名c站总榜19叫前端小歌谣曾经我花了三年的时间创作了他现在我要用五年的时间超越他今天又是接近兄弟的一天人生难免坎坷大不了从......
  • 调用函数改变实参
    voidadd(int&p)//voidadd(int*p){ p++; //(*p)++;}intmain(){ intnum=0; add(num);//想要调用函数改变实参,用&p来接受实参的地址,否则只能传值; //add(&num)传址需......
  • 【Azure 应用服务】Azure Function Timer触发函数加上Singleton后的问题
    问题描述在AzureFunctionTimerTrigger的函数中,添加了Singleton属性,当Function的实例变为3个后,发现Timer函数并没有在三个实例上同时运行,每次触发时,都只有在一个实例上运......
  • 调用一个二分法函数查找数值的下标值
    intbinary_search(intx,intarrx[],intsz){ intleft=0; //intright=(sizeof(arrx)/sizeof(arrx[0]))-1;不能在函数里计算数组(参数)的大小 intright=sz-......
  • OpenCV3图像处理笔记
    此笔记针对Python版本的opencv3,c++版本的函数和python版本的函数参数几乎一样,只是矩阵格式从ndarray类型变成适合c++的mat模板类型。注意,因为python版本的opn......
  • 同样华丽丽地越过了多维引用的Map(Excel函数集团)
    先看看这个:​​华丽丽地越过了多维引用的MakeArray​​再看看这个:​​有了ByRow和ByCol,MM函数还要怎么混?​​原来,能越过多维引用的不止以上几位,还有一位Map 题目要求1,将A10......
  • 学习笔记281—word不能插入公式
    点击辅助功能在文档中点击状态栏下辅助功能。点击转换在辅助功能界面,点击转换。点击公式点击公式,这样就可以插入公式。END方法/步骤2点击文件在文档界面,点击文件。点击信息......