辽宁省城乡和建设厅网站,做护理简历的网站,上海高品质网站建设公司,重庆建设工程信息网怎么打不开//本文有待补充。
一、函数
1.函数的定义
如果程序的逻辑比较复杂、代码量比较大#xff0c;或者重复性功能比较多#xff0c;那么全部写在主函数里就会显得十分冗长和杂乱。为了使代码更加简洁、思路更加清晰#xff0c;C语言提供了”函数“。函数是一个实现一定功能的语…//本文有待补充。
一、函数
1.函数的定义
如果程序的逻辑比较复杂、代码量比较大或者重复性功能比较多那么全部写在主函数里就会显得十分冗长和杂乱。为了使代码更加简洁、思路更加清晰C语言提供了”函数“。函数是一个实现一定功能的语句的集合并在需要时可以反复调用而不必每次都重新写一遍。像math.h头文件下面的sin()、pow()等数学函数就是系统已经帮其实现好功能的、用户可以直接使用的函数。
返回类型 函数名称参数类型 参数{函数主体
} 2.理解函数
#includestdio.h
int main(){int n,d;scanf(%d %d,n,d);int x0;if(n0)n-n;while(n){int an%10;if(ad)x;n/10;}printf(%d,x);return 0;
}
#include stdio.hint Count_Digit ( const int N, const int D );int main()
{int N, D;scanf(%d %d, N, D);printf(%d\n, Count_Digit(N, D));return 0;
}
int Count_Digit ( const int N, const int D ){int x0,nN;if(n0)n-n;while(n){int an%10;if(aD)x;nn/10;
}return x;
}
#include stdio.hint CountDigit( int number, int digit );int main()
{int number, digit;scanf(%d %d, number, digit);printf(Number of digit %d in %d: %d\n, digit, number, CountDigit(number, digit));return 0;
}
int CountDigit( int number, int digit ){int x0;if(number0)number-number;if(number0)return 1;while(number){int anumber%10;if(adigit)x;numbernumber/10;}return x;
}
我们观察上面三个代码都实现了同样的结果只是表达方式不同第一个代码和另外两个代码就是一般代码和函数代码的区别做函数题的时候只需要写好函数部分就行。 然后第二个代码和第三个的区别是const(const名叫常量限定符用来限定特定变量以通知编译器该变量是不可修改的。习惯性的使用const可以避免在函数中对某些不应修改的变量造成可能的改动。)
到这里函数主体和我们平时在主函数里写的代码并没有什么区别我们只需要注意除函数主体以外的外壳就行。
如果函数返回类型是void一般需要printf输出结果万一是全局变量或指针或数组否则是return。
对于递归函数其实就是先判断特殊情况然后又调用本函数参数应作相应的改变得到其它结果。
3.细节问题
1如果需要使用到一些写好的函数注意看主函数有没有对应的头文件否则老老实实按照思路去写。
2一维数组不需要写长度二维数组后面一个需要写。
void change(int a[],int b[][5]){
}
二、指针
1.一般情况
在函数里面的指针其实就是多了个’*‘而已和一般函数没有太大区别。 2.什么时候需要加或减* 3.指针与数组
如果指针对应的传入是数组或字符串字符串以’\0结尾如果头文件没有string.h的头文件写函数主体时可以用这个条件来循环同时注意有些时候要加上\0那么*pa[0]*pa[0],这里的’‘可以忽略)如果p(*pa[1])同样的*(pi)a[i]。 如果是(*p)[n]其实就是p[n][n]也就是指针和数组是一样的如下两个代码皆可。 6-20冒泡排序
8
7 3 66 3 -5 22 -77 2输出样例
-77 -5 2 3 3 7 22 66 #include stdio.h
void bubble (int a[ ], int n);
int main(void)
{ int n, a[10];int i;scanf(%d, n);for (i0; in;i)scanf(%d,a[i]);bubble(a,n);for (i0; in; i)printf(%d ,a[i]);printf(\n);return 0;
}void bubble (int a[ ], int n){for(int i0;in-1;i){for(int j0;jn-1-i;j){if(a[j]a[j1]){int ta[j1];a[j1]a[j];a[j]t;}}}
} #include stdio.h
void bubble (int *a, int n);
int main(void)
{ int n, a[10];int i;scanf(%d, n);for (i0; in;i)scanf(%d,a[i]);bubble(a,n);for (i0; in; i)printf(%d ,a[i]);printf(\n);return 0;
}
void bubble (int *a, int n){for(int i0;in-1;i){for(int j0;jn-1-i;j){if(a[j]a[j1]){int ta[j1];a[j1]a[j];a[j]t;}}}
}