上一篇介绍了要设计一个程序时会使用到的流程图,如果对於凭空想像程序怎麽写有障碍的朋友,可以考虑使用流程图的方式来辅助写程序!
今天我们来介绍另一个很重要的语法--「副函式」!
不晓得大家还记不记得,在遥远的第三篇我们有稍微的介绍主函式(main function),一个程序主要运行的部分就是主函式了,大家有没有想过既然有主函式,会不会有副函式之类的呢?
今天我们就来介绍副函式吧!
先来举一个只有主函式的判断奇偶数程序:
#include <stdio.h>
int main()
{
int n;
scanf("%d", &n);
if(n%2==0){
printf("even.\n");
}
else{
printf("odd.\n");
}
return 0;
}
转换成由副函式来判别後传值(偶数回传0,奇数回传1):
#include <stdio.h>
int judge_num(int);
int main()
{
int n;
scanf("%d", &n);
printf("%d", judge_num(n));
return 0;
}
int judge_num(int num){
if(num%2==0){
return 0;
}
else{
return 1;
}
}
也可以由副函式直接代劳输出:
#include <stdio.h>
void judge_num(int);
int main()
{
int n;
scanf("%d", &n);
judge_num(n);
return 0;
}
void judge_num(int num){
if(num%2==0){
printf("even.\n");
}
else{
printf("odd.\n");
}
}
(1) 宣告函式:就像变数在使用前需要宣告,副函式也必须在使用之前就宣告好。
(2) 副函式的资料型态:就像变数有不同的资料型态一样,但函式中的资料型态是针对回传值的型态,且与变数不同的是也有无回传值的资料型态(void)。
(3)副函式可要求传入值:副函式可以接受其他函式的传入值进行处理使用,有传入值的话呼叫副函式时也要记得传值。
我们可以把判断质数的部分单独拆出来,用另一个副函式去处理,这样主函式看起来就会清楚很多:
#include <stdio.h>
int is_num_prime(int);
int main()
{
int n;
scanf("%d", &n);
printf("小於等於n之所有质数: ");
for(int i=2; i<=n; i++){
if(is_num_prime(i)==0){
printf("%d ", i);
}
}
return 0;
}
int is_num_prime(int num){
int k=0;
for(int i=2; i<num; i++){
if(num%i==0){
k=1;
break;
}
}
if(k==0){
return 0;
}
else{
return 1;
}
}
>>: 原来Arduino开发板的 脚位与程序内数字的对应 会随着开发商不同而改变?
介绍完分支後,这篇来讲解「标签」吧! 标签在日常生活中可以解释成标示简单讯息的小牌子,而在学习阶段,...
您的订阅是我制作影片的动力 订阅点这里~ 影片程序码 library(naniar) data(ir...
F.prototype 我们可以使用new F()这样的构造函数创建一个新object,如果F.pr...
今天教 Promise Async / Await。 Promise Promise 这个东西跟时间...
前言 我是去年刚毕业与今年四月刚退伍的新鲜人。大学读的是资管系,在学期间没什麽写程序,没错,资管系毕...