C语言 | 函数参数

65 阅读2分钟

定义函数时,要求的值叫形参。

调用函数时,传入的值叫实参。

参数传递:数据从实参传递到形参。

注意:类型,数量,顺序要一致。

#include <stdio.h>
void func1(int a, char* b){
	printf("a=%d,b=%s",a,b); 
}

int main(){
//	func1(1,"a",1);//输入多了 
//	func1(1);//输入少了 
//	func1("a",1);//顺序反了 
	func1(1,"a");
	return 0;
}
#include <stdio.h>

// 任务1:计算[1~n]的偶数和并打印
void getSum(int n) {
    int sum = 0;
    // 遍历1到n,筛选偶数累加
    for (int i = 1; i <= n; i++) {
        if (i % 2 == 0) { // 判断是否为偶数
            sum += i;
        }
    }
    printf("1~%d的偶数和为:%d\n", n, sum);
}

// 任务2:打印n*n乘法表(n∈[2,9])
void printFunc1(int n) {
    // 校验输入范围,避免非法值
    if (n < 2 || n > 9) {
        printf("输入错误!请输入2~9之间的数\n");
        return;
    }
    // 外层循环控制行数,内层控制列数
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= i; j++) {
            printf("%d×%d=%-2d ", j, i, i*j); // %-2d 左对齐,占2位,排版更整齐
        }
        printf("\n"); // 每行结束换行
    }
}

// 任务3:打印三个数中的最大值
void printFun2(int a, int b, int c) {
    int max = a; // 先假设a是最大值
    if (b > max) max = b; // 比较b,更新最大值
    if (c > max) max = c; // 比较c,更新最大值
    printf("三个数%d、%d、%d的最大值是:%d\n", a, b, c, max);
}

int main() {
    // 修正原代码中的函数名拼写错误
    getSum(4);    // 任务1:计算1~4的偶数和(2+4=6)
    printf("\n"); // 空行分隔,输出更清晰
    printFunc1(9);// 任务2:打印九九乘法表
    printf("\n");
    printFun2(3,2,1); // 任务3:找3、2、1的最大值
    return 0;
}
#include <stdio.h>
void getSum(int n){
	int sum = 0;
	for(int i = 1;i<=n;i++){
		if(i % 2 == 0){
			sum += i;
		}
	}
	printf("1~%d的偶数和为:%d\n",n,sum);
}

void printFunc1(int n){
	if(n < 2 || n > 9){
		printf("输入错误!请输入2~9之间的数\n");
		return;
	}
	
	for(int i = 1;i <= n;i++){
		for(int j = 1; j<=i;j++){
			printf("%d×%d=%-2d",j,i,i*j); 
		}
		printf("\n");
	}
}

void printFunc2(int a,int b, int c){
	int max = a;
	if (b>max) max=b;
	if (c>max) max=c;
	printf("三个数%d、%d、%d的最大值是:%d\n",a,b,c,max);
}

int main(){
	
	getSum(4);//6 = 2 + 4
	printf("\n");
	printFunc1(9);//打印九九乘法表 
	printf("\n");
	printFunc2(3,2,1);//输出:3 
	return 0;
}
/*
任务1:请编写程序,计算[1~n]直接的偶数和。在函数内容打印结果即可。 
任务2:请编写程序,输入[2~9]之间的参数,在函数内容打印n*n乘法表即可 
任务3:编写程序,打印三个数中的最大值。 
*/

image.png