编程C本: 帖子 8 – 在C函数
内容
1. 在功能的开始
输入并运行 2 例子, 观察结果和意见.
例 1:
// e.g 1 about function in C - code by nguyenvanquan7826 #include <stdio.h> void loiKhuyen() { printf("Neu hoc nghiem tuc va cham chi thi ban se thay:\n"); printf("Khong co viec gi kho\n"); printf("Chi so long khong ben\n"); printf("Dao nui va lap bien\n"); printf("Quyet chi at lam nen\n"); printf("\n"); } int main() { printf("Hoc bai nay kho qua!\n"); loiKhuyen(); printf("Hoc C kho qua!\n"); loiKhuyen(); return 0; }
结果:
经验教训通过这个仓库中了解到!
NEU认真学习和努力工作,你会看到:
没有仓库
驰奔这么久康元
一圈巨大的刀VA边
确定在嫩江林特殊碳储量超过!
NEU认真学习和努力工作,你会看到:
没有仓库
驰奔这么久康元
一圈巨大的刀VA边
确定在嫩江林
例 2:
// e.g 2 about function in C - code by nguyenvanquan7826 #include <stdio.h> void vechu(char chu, int soluong) { int i; for (i = 0; i < soluong; i++) { printf("%c", chu); } printf("\n"); } int main() { vechu('h', 20); vechu('a', 30); vechu('h', 12); vechu('a', 5); vechu('p', 10); return 0; }
结果:
gggggggggggggggggg
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
hhhhhhhhhhhh
AAAAA
pppppppppp
如果程序有一些命令, 或具有相同或相似的形式重复多次在不同的位置上的作业, 避免浪费时间和精力去复制,我们应该组织并构建它成片命令的命令序列, 当程序需要做的工作,他们只是调用命令仅段. 调用函数命令段落.
火腿是一块实现块命令作业的重复几次运行程序时,或使用一个单独的块的具体工作,以支持复杂的程序.
在该示例 1: 有 2 计划, 1 主程序: 主 和 1 增发方案: loiKhuyen 没有参数,没有返回值的函数的数据类型声明为void. 无论是主loiKhuyen被调用的函数. 其主要功能是执行功能和运行我们的整个程序. 火腿loiKhuyen做了一些工作 (产量 5 上面的字). 在主函数我们 2 地方调用loiKhuyen();
在该示例 2: 类似的例子 1, 它包括 2 颚, 1 主要功能是 主 和 1 子程序, 但是子程序 Vecht(柱CHAR, INT soluong); 有 2 参数的形式是 周期 char类型和 soluong int类型. 火腿vechu函数没有返回值的数据类型应该被声明为void. 在主函数我们 3 vechu函数调用的参数与实际转的方案.
2. 该功能的工作原理
- 当机器符合函数调用的任何地方被执行起动功能, 会立即离开该地区去的函数被调用.
- 如果函数的参数,该机将在功能相应的形式参数进行实时通信参数.
- 机器开始执行又将在函数体的语句,直到reuturn订单或支票 } 下颚,停止逃跑函数返回程序来调用它,使该计划的声明.
- 如果该函数返回一个值,该表达的函数的函数的返回值的值.
注意: 该函数声明 无效vechu(柱CHAR, INT soluong) 然后 周期和数量参数形式, 即使调用 Vecht('H', 20); 然后 'H’ 和 20 参数真.
3. 卡爪的结构
我们已经构建了下面的函数声明:
KieuTraVe TenHam(Cac tham so) { ThanHam; }
函数名称在变量命名规则设置.
4. 函数的示例
例 1: 该函数没有返回值
上面我们有 2 例如开口不是函数返回一个值,并声明的返回类型是 空虚.
例 2: 有价值的函数返回
功能建设ñ! 很少有表情的阶乘. 知道N.! = 1.2.3…ñ
// e.g about function in C - code by nguyenvanquan7826 #include <stdio.h> long giaiThua(int n) { long gt = 1; int i; for (i = 2; i <= n; i++) { gt *= i; // <=> gt = gt * i } return gt; } int main() { printf("5! = %ld \n", giaiThua(5)); printf("6! + 1 = %ld \n", giaiThua(6) + 1); return 0; }
结果:
5! = 120
6! + 1 = 721
做ñ! 可以是一个相当大的整数函数返回类型的值 长 (大于int类型 – 回顾在C数据类型). 命令 返回GT 即变量返回GT, GT必须具有相同的类型的数据与功能的数据类型 (和龙).
在本实施例giaiThua函数返回的数量n的阶乘上,以便它可以被认为是被传递 1 变量和表达式中使用, 总是使用打印结果. 当在任何地方的会议功能,它将发送 1 对应的函数参数和返回的最后一个命令的返回值.
例 3: 功能测试
验楼的功能也有一些不错的一些不? 靓号是数整除 2 可分割 5.
要做到这一点, 我们需要确定在此功能检查许多东西, 因此,我们需要返回正确的值 (1) 或错误 (0). 因此,该函数返回整数.
// e.g about function in C - code by nguyenvanquan7826 #include <stdio.h> int kiemTraChiaHet(int n) { if(n % 2 == 0 && n % 5 == 0) { return 1; } return 0; } int main() { int x; printf("Nhap x = "); scanf("%d", &x); if( kiemTraChiaHet(x) == 0) { printf("day khong phai so dep @@\n"); } else { printf("day la so dep !!!\n"); } return 0; }
在功能kiemTraChiaHet, 当n整除 2 和 5, 它会执行命令 回报 1, 在执行此功能即结束, 不要在这个函数中做任何事情再次命令是否留下. 如果数字n不是整除 2 和 5 它会执行命令 回报 0.
例 4: 这些功能相互调用
// e.g about function in C - code by nguyenvanquan7826 #include <stdio.h> int max2(int a, int b) { return a > b ? a : b; } int max3(int a, int b, int c) { return max2( max2(a, b), c); } int main() { int a = 7, b = 13, c = 4; printf("So lon nhat la %d \n", max3(a, b, c)); return 0; }
结果:
最高 13
在这个例子中,我们建立 2 功能找到的数量最多 2 数量和 3 号码. 在MAX2功能,我们使用 有条件的经营者 找到的最大数量的 2 号码. 在MAX3功能是打电话MAX2 2 时间找到最多的, b和采取了一些发现进行比较到c发现数量最多.
注意: 该功能后的函数声明称它被宣布之前,但功能调用函数声明之前未申报. 即在上面的例子,如果我们在以后的水平建立MAX2功能,机器会出错MAX3. 为了解决这个问题,我们通常申报程序的功能,那么我们定义功能,在程序的任何地方就是一个例子给我们:
例 5: 该函数定义之前函数声明
// e.g about function in C - code by nguyenvanquan7826 #include <stdio.h> // khai bao cac ham max2, max3, max4 int max2(int a, int b); int max3(int a, int b, int c); int max4(int a, int b, int c, int d); int max3(int a, int b, int c) { return max2( max2(a, b), c); } int max2(int a, int b) { return a > b ? a : b; } int main() { int a = 7, b = 13, c = 4, d = 16; printf("So lon nhat trong a, b, c la %d\n", max3(a, b, c)); printf("So lon nhat trong a, b, c, d la %d\n", max4(a, b, c, d)); return 0; } int max4(int a, int b, int c, int d) { return max2( max2(a, b), max2(c, d) ); }
结果:
在数量最多, B, ç 13
在数量最多, B, Ç, 的 16
工作时,我们应该在宣布这样的功能,并定义如下. 因此,我们将避免一些错误,当我们要使用在每个功能.
我已经知道该功能可以相互调用和功能也可以拨打自己, 我们使用递归函数.
例 6: 递归函数
我知道式N! = 1.2.3…ñ. 但是人们也可以写ñ! = (N-1)!.ñ. 在这个符号来计算出n! 我们需要计算 (N-1)!. 因此,它可以被称为表达和功能递归,太, 回调函数本身被称为递归函数.
// e.g about function in C - code by nguyenvanquan7826 #include <stdio.h> int giaiThua(int n) { if(n == 0) return 1; // dieu kien dung return giaiThua(n-1) * n; // loi goi chinh no } int main() { int n = 5; printf("%d! = %d",n, giaiThua(n)); return 0; }
注意 在总递归函数 2 因素是条件停止,自称.
例 7: 使用导航的#define定义一个简单的函数
#include <stdio.h> #define tong(x, y) x + y int main() { int a = 5, b = 8; printf("%d + %d = %d",a, b, tong(a, b)); return 0; }
在这一点上,我们有功能的基本认识, 但还有更多的东西,说功能, 特别是关于函数数组和指针. 我们将继续以找出他们在接下来的文章中有数组和指针.
锻炼
- 写的功能总结S = 1 + 2 +….+ñ.
- 写检查功能的素数, 完美的数字.
- 输入n数和公告应素数的序列, 完美的数字或不.
你给我他写了上面的问题”在程序 1: 有 2 计划, 1 主程序: 主 1 增发方案: loiKhuyen没有参数,并返回该功能的任何值的数据类型应被声明为无效.
但在程序 2, vechu功能已申报为无效星尚先生参数
谢谢
参数和返回值是 2 在完全不同的和互不相干你啊
你看到很多人在声明功能里就是为什么他 :
节点 * searchnode(树T , 浮ķ)
该函数返回指针类型的笔记
函数的声明也给他指点DC AK
把你好吗.
广告的网站,你问递归函数, 停止条件回报 1 LA星先生? 我想回报 1 它返回一个值 1 宁?
这是事实,它返回一个值 1. 但是,为了是递归的停止条件, 即要停止,他们必须停止在TH.
广告可以没有更好的解释先生. 回报 1 那么为什么不获取的价值功能giaithua一先生? Ck感谢
它只返回 1 当n = 0 阻止你. 如果仍然是n> 0 它仍然叫做本身,而是用正减少.
VD N = 4 我们已经实现过程.
B1: 做N> 0 应该返回giaithua(3)*4
B2. 类似它将返回giaithua(2)*3*4
B3, 返回giaithua(1)*2*3*4
B4. 返回giaithua(0)*1*2*3*4
B5. 在这个阶段,计算giaithua(0) 并查看它返回n = 0的 1 新闻giaithua(0) = 1. 其结果有
1*1*2*3*4
我问他,以定义要最大最小功能BH 1 从键盘输入链N N号,然后做TN ????
字符串的最小值最大值定义就是为什么你.
返回giaiThua(N-1) * ñ; // LOI自称
服务员, 这首歌为什么它成为 4!*5 是爵士.
当n = 5 那么n – 1 = 4, giaiThua(N-1) 是 4!.
町EM海返回返回作为返回GT , 因此GT – 和giaithua相互无关的共同先生 ,
恒星在主函数调用giaithua出 , 而返回值是返回GT ?
预计一段时间我喜欢你
giaithua函数名, GT也变量包含要计算我们应该支付的遣散值.
要使电子邮件问: 想用我们需要做的功能?
只要叫出声.
让我问: 我看到了写功能, 比如人们通过: 一个INT, INT &该, 一个INT, 多么的不同, 以及如何使用
INT函数参数是整数正常, INT &是一个函数参数的整数变量的地址. 诠释的功能与价值不保存时的功能出, 但INT &一,a的值可以关闭功能之后被保存. 您可以参考这个职位更多: https://cachhoc.net/2018/01/20/ham-hoan-vi-trong-c/#4_Ham_hoan_vi_trong_C
INT主要() {
INT N = 5;
的printf(“%ð! =%d”,ñ, giaiThua(ñ));
回报 0;
}
明星来回报 0 多个管理员
根本 1 他的文章还称飘. 但更多的,为什么我们使用return 0, 或在主函数的末尾返回一定值()?
答案很简单: 大多数情况下,, 没有必要!
但是,如果你有兴趣在这个问题是关于它的更深层次的含义有点NHE:
为了main函数返回一个值, 也就是说,你的程序将告诉操作系统在你的程序的状态, 在一定的误差范围内运行这样的程序.
默认情况下,OS, 当值 0 从主返回(), 程序将永远不会遇到任何错误. 相反, 当一个非零值被返回到主功能, 它会发出信号已发生了错误.
例, 程序无法打开已通过命令行指定的文件. 真正的价值是从程序返回,他们意味着程序什么表示,: 它们是由程序的程序员定义.
来源: http://diendan.congdongcviet.com/threads/t4057::SU-粪回报-0-邻cuoi-火腿主CO-Y-宗旨-gi.cpp
他可以解释#defind你不帮我那款你没有看错先生谢谢
这是定义 1 常数或函数使得f快.
我没有得到座位递归函数 , 明星与式 (N-1)*ñ它可以工作 5 = 120 因此,一个 , 并为电子商务问背后意味着什么先生感叹号 , 谢谢
它表示阶乘. 5! = 1*2*3*4*5 = 120.
KieuTraVe有(参数)
{
ThanHam;
}
服务员, 这些参数自己是不是他的身体机能, 例如: : 参数 “INTñ”
, 他募股 “INTñ” 这个功能是不是他, 它的参数仍然是空的
但有时我们需要通过对新用户是NHE.
通过就是为什么他
您可以查看理论和实例,以可视化更容易.
让我向 ” ? 该 : B ” 仲回报 > B ? 该 : B; 什么是爵士 ?
这就像如果其他事物. 认真学习没有什么. 看到这里,而. https://cachhoc.net/2014/12/11/lap-trinh-c-bai-5-cau-truc-re-nhanh-if-else-switch-case-trong-c/#24_Toan_tu_dieu_kien_8211_If_else_rut_gon
Hi.Em先生非常感谢!
#包括
INT nguyento (INTñ) {
如果 (N / 1 == 0&&N / 2!= 0){
回报 1;}
回报 0;}
INT sohoanhao (INTñ){
的int = 1;
为 (INT I = 2;在>= N;我 ) {
如果 (你!= 0) {继续;}
否则,如果 (N / I == 0) {S + =我;}
否则,如果 (小号== N + N){回报 1 ;}
其他{回报 0;}}
}
INT主要(){
INT n = 1的;
而 (ñ>0){
的printf(“进入 :”);
scanf函数(“%ð”,&ñ);
如果 (nguyento(ñ)== 1) {
的printf(“%d我知道阮 n”,ñ);}
否则,如果 (sohoanhao(ñ)== 1){
的printf(“so %d la so hoan hao /n”,ñ);
}
}
回报 0;
}
程序运行时只引进 (ñ) 在呢?我こま素食 ;通过脑AE户
人数可能您输入是不是质数, 也不是完美的数字.
让我问INT主(空虚) 以及各种无效的主要NTN先生
#包括
诠释snt(INT米)
{
诠释J;
如果(米<2) 回报 0;
其他
{
为(j=2;Ĵ<(米/2+1);J )
如果(m%j==0 && 米!= 2) 回报 0;
}
回报 1;
}
INT主要()
{
INTñ,在;
scanf函数("%d",&ñ);
一个INT[ñ];
为(I = 0;在<ñ;我 )
{
scanf函数("%d",该[在]);
如果(snt(该[在])== 1) 的printf("%d",该[在]);
}
回报 0;
}
为什么我将其编码为停止工作? ???
入口处a[在] 这是错的.