4 0
**输出样例:** 在这里给出相应的输出。例如:
2
3
1代码长度限制 16 KB 时间限制 400 ms 内存限制 64 MB
2.参考代码
/*@Keywords of Code: 函数基础知识 * @Author: 毛毛maomaonwn * @Date: 2023/12/8 */ int fun(int n, int m) { if (m == 0) { return 1; } else if (n == 1) { return 1; } else if (m == n) { return 1; } else { return fun(n - 1, m - 1) + fun(n - 1, m); //函数自己可以调用自己 } }
3.解析或补充
1. 函数基础知识概述:
* 函数:函数是一个程序块 * 函数的定义: 返回值类型 函数名(形式参数){ 代码 return表达式 } 其中,如果不书写return表达式的话,返回值类型要写void(”空,无”)。 |
| * 参数:分为形式参数和实际参数,没有实际值的参数是形参,有实际值的则为实参。参数的语法是:数据类型 变量名
|
| * 函数的声明:提前让编译器了解到函数的存在。语法是:返回值类型 函数名(形式参数)
|2.函数可以自己调用自己,这也是递归的一种简单体现
6-2 sdut- C语言实验——矩阵下三角元素之和
1.题目:
输入一个正整数n(1<=n<=10),再输入n*n的矩阵,要求求该矩阵的下三角元素之和。
函数接口定义:
int f(int (*p)[10],int n);
其中
p
和n
都是用户传入的参数。p
的值为地址;n
是[1, 10]区间内的个位数。函数不需要返回数据。裁判测试程序样例:
#include<stdio.h> int f(int (*p)[10],int n); int main() { int n,i,j,sum; int a[10][10]; scanf("%d",&n); for(i=0; i<n; i++) { for(j=0; j<n; j++) { scanf("%d",&a[i][j]); } } sum=f(a,n); printf("%d",sum); return 0; } /* 请在这里填写答案 */
输入样例:
5 1 2 3 4 5 2 3 4 5 6 3 4 5 6 7 4 5 6 7 8 5 6 7 8 9
输出样例:
75
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
2.参考代码:
/*@Keywords of Code:循环的范围、地址传递 @Author:毛毛maomaonwn @Date:2023/12/9 */ //在解答这题前,需要正确了解“下三角”和“上三角”是什么样的: /*“下三角”形: * ** *** **** “上三角”形: **** *** ** * */ int f(int(*p)[10],int n){ //二维数组的传递——指针形式 int sum = 0; for(int i=0;i<n;i++){ for(int k=0;k<=i;k++){ sum+=p[i][k]; } } return sum; }
3.解析或补充
1.循环的范围:
数据模拟:
2.二维数组的地址传递——指针形式
函数声明:
void arr_fun(int (*arr)[col],