现在的位置: 首页 > 新课程 > 正文

结构化程序设计的基础:函数

2011年11月07日 新课程 ⁄ 共 279字 ⁄ 字号 暂无评论

程序的提炼 -> 函数

输入两个数, 保存在 base 和 n
输出 base 的 n 次方

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
int main(int argc, char *argv[])
{
	int base, n;
	int result =1;	
	int i;
 
	scanf("%d%d", &base, &n);
	for (i=1; i<=n; i++)
	    result = result * base;
 
	printf("%d\n", result);
 
	return 0;
}

假设在已经有了函数,你会怎么使用呢?

1
2
 #include <math.h>
  double pow( double base, double exp );

使用数学库中的函数 pow

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
#include <math.h>
int main(int argc, char *argv[])
{
	int base, n;
	int result;
 
	scanf("%d%d", &base, &n);
	result = pow(base, n);
 
	printf("%d\n", result);
 
	return 0;
}

现在,我们练习编写一个函数 power,可以用来计算整数的幂,当然,能够计算的范围很小。

函数有四要素:函数名,输入参数,返回值,函数体

我们可以将原先的 main 函数 改写成 power 函数,步骤如下:

1)将 scanf 中的输入作为函数的输入 
      scanf("%d%d", &base, &n)  -> power(int base, int n)
2)将 printf 中的输出作为返回值,根据输出来确定返回值的类型  
      printf("%d\n", result); -> return result;

将运算代码复制到函数体内

1
2
3
4
5
6
7
8
9
int power(int base, int n)
{
	int result = 1;
 	int i;
 
	for (i=1; i<=n; i++)
	    result = result * base;
 	return result;
}

It's your turn now! Go to next page.

下面的程序是计算表达式的值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <stdio.h>
 
int main(int argc, char *argv[])
{
    int a, b,result;
    char op;
 
    scanf("%d%c%d", &a,&op,&b);
    switch(op) {
    case '+':
        result =a+b;
        break;
    case '-':
        result =a-b;
        break;
    case '*':
        result =a*b;
        break;
    case '/':
        result =a/b;
        break;
    case '%':
        result =a%b;
        break;
    default:
        break;
    }
    printf("%d\n", result);
 
    return 0;
}

1)首先,提取出功能代码,规划好函数的名称: 计算表达式 calc_expression,这个函数的定义应该是怎样的?

2)在主函数中,怎么调用这个函数

3)将主函数中的原有代码移动到 calc_expression 中,然后修改

答案见下页

抱歉!评论已关闭.