011. 使用函数返回计算结果

在C语言中,函数可以通过return语句返回一个值。这个值可以是任何类型(如整数、浮点数、字符等),并且可以在调用函数时接收并使用这个返回值。以下是一些示例,展示如何编写函数来返回计算结果,并在主函数中使用这些结果。

示例1:计算两个数的和并返回结果

#include <stdio.h>

// 函数定义:计算两个整数的和并返回结果
int add(int a, int b) {
    int sum = a + b; // 计算和
    return sum;      // 返回和
}

int main() {
    int num1, num2, result;

    // 提示用户输入两个数字
    printf("Enter two numbers: ");
    scanf("%d %d", &num1, &num2);

    // 调用函数并接收返回值
    result = add(num1, num2);

    // 输出结果
    printf("The sum of %d and %d is %d\n", num1, num2, result);

    return 0;
}

输出示例

假设用户输入53,程序的输出将是:

Enter two numbers: 5 3
The sum of 5 and 3 is 8

示例2:计算两个数的平均值并返回结果

#include <stdio.h>

// 函数定义:计算两个浮点数的平均值并返回结果
double average(double a, double b) {
    return (a + b) / 2.0; // 计算平均值并返回
}

int main() {
    double num1, num2, result;

    // 提示用户输入两个数字
    printf("Enter two numbers: ");
    scanf("%lf %lf", &num1, &num2);

    // 调用函数并接收返回值
    result = average(num1, num2);

    // 输出结果
    printf("The average of %.2f and %.2f is %.2f\n", num1, num2, result);

    return 0;
}

输出示例

假设用户输入10.520.5,程序的输出将是:

Enter two numbers: 10.5 20.5
The average of 10.50 and 20.50 is 15.50

示例3:判断一个数是否为素数并返回结果

#include <stdio.h>

// 函数定义:判断一个数是否为素数并返回结果
int isPrime(int num) {
    if (num <= 1) {
        return 0; // 0和1不是素数
    }
    for (int i = 2; i * i <= num; i++) {
        if (num % i == 0) {
            return 0; // 如果能被整除,则不是素数
        }
    }
    return 1; // 是素数
}

int main() {
    int num;

    // 提示用户输入一个数字
    printf("Enter a number: ");
    scanf("%d", &num);

    // 调用函数并接收返回值
    if (isPrime(num)) {
        printf("%d is a prime number.\n", num);
    } else {
        printf("%d is not a prime number.\n", num);
    }

    return 0;
}

输出示例

假设用户输入7,程序的输出将是:

Enter a number: 7
7 is a prime number.

假设用户输入10,程序的输出将是:

Enter a number: 10
10 is not a prime number.

示例4:返回多个值

C语言的函数只能返回一个值,但可以通过指针参数返回多个值。以下是一个示例,计算两个数的和与差,并通过指针返回这两个结果。

#include <stdio.h>

// 函数定义:计算两个整数的和与差,并通过指针返回结果
void calculate(int a, int b, int *sum, int *diff) {
    *sum = a + b;  // 计算和
    *diff = a - b; // 计算差
}

int main() {
    int num1, num2, sum, diff;

    // 提示用户输入两个数字
    printf("Enter two numbers: ");
    scanf("%d %d", &num1, &num2);

    // 调用函数并接收返回值
    calculate(num1, num2, &sum, &diff);

    // 输出结果
    printf("Sum: %d\n", sum);
    printf("Difference: %d\n", diff);

    return 0;
}

输出示例

假设用户输入105,程序的输出将是:

Enter two numbers: 10 5
Sum: 15
Difference: 5

视频讲解

BiliBili: 视睿网络-哔哩哔哩视频 (bilibili.com)