1
0
mirror of https://github.com/renbaoshuo/202401-programming-assignments.git synced 2024-11-23 09:38:42 +00:00

【实践课内】10.函数1

This commit is contained in:
Baoshuo Ren 2024-11-20 10:24:14 +08:00
parent 1fbe983580
commit e2c8cfafdb
Failed to extract signature
8 changed files with 264 additions and 0 deletions

View File

@ -0,0 +1,7 @@
const char WEEKDAY[7][4] = {"", "", "", "", "", "", ""};
void ShowDayWeek(int dow) {
if (dow < 0 || dow >= 7) return;
printf("%s", WEEKDAY[dow]);
}

View File

@ -0,0 +1,93 @@
# 6-1 输出星期名
请编写函数,根据星期数输出对应的星期名。
#### 函数原型
```
void ShowDayWeek(int dow);
```
说明:参数 dow 为星期数。若 dow 在 0 ~ 6 范围内,则输出“日”、“一”、“二”、...、“六”,否则不输出任何信息。
<table>
<tr>
<td align="center"><b>星期值</b></td>
<td align="center"><b>星期名</b></td>
</tr>
<tr>
<td align="center">0</td>
<td align="center"></td>
</tr>
<tr>
<td align="center">1</td>
<td align="center"></td>
</tr>
<tr>
<td align="center">2</td>
<td align="center"></td>
</tr>
<tr>
<td align="center">3</td>
<td align="center"></td>
</tr>
<tr>
<td align="center">4</td>
<td align="center"></td>
</tr>
<tr>
<td align="center">5</td>
<td align="center"></td>
</tr>
<tr>
<td align="center">6</td>
<td align="center"></td>
</tr>
</table>
#### 裁判程序
```c
#include <stdio.h>
void ShowDayWeek(int dow);
int main()
{
int w;
scanf("%d", &w);
ShowDayWeek(w);
putchar('\n');
return 0;
}
/* 你提交的代码将被嵌在这里 */
```
#### 输入样例 1
```in
3
```
#### 输出样例 1
```out
```
#### 输入样例 2
```in
9
```
#### 输出样例 2
```out
```

View File

@ -0,0 +1,15 @@
int IntMax3(int x, int y, int z) {
if (x > y) {
if (x > z) {
return x;
} else {
return z;
}
} else {
if (y > z) {
return y;
} else {
return z;
}
}
}

View File

@ -0,0 +1,41 @@
# 6-2 三整数最大值
请编写函数,求三个整数的最大值。
#### 函数原型
```c
int IntMax3(int x, int y, int z);
```
说明:参数 x、y 和 z 为三个整数,函数值为三个整数中的最大值。
#### 裁判程序
```c++
#include <stdio.h>
int IntMax3(int x, int y, int z);
int main()
{
int a, b, c, d;
scanf("%d%d%d", &a, &b, &c);
d = IntMax3(a, b, c);
printf("%d\n", d);
return 0;
}
/* 你提交的代码将被嵌在这里 */
```
#### 输入样例
```in
15 36 -27
```
#### 输出样例
```out
36
```

View File

@ -0,0 +1,11 @@
void fun(int a[], int n) {
for (int i = 0; i < n; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (a[j] > a[j + 1]) {
int t = a[j];
a[j] = a[j + 1];
a[j + 1] = t;
}
}
}
}

View File

@ -0,0 +1,42 @@
# 6-3 数据排序
输入n<10个整数用任一排序算法按从小到大排序后输出
### 函数接口定义:
```c
在这里描述函数接口。例如:
void fun(int a[], int n);
```
### 裁判测试程序样例:
```c
在这里给出函数被调用进行测试的例子。例如:
#include <stdio.h>
void fun(int a[], int n);
int main()
{int i,a[10],n;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
fun(a,n);
for(i=0;i<n;i++)
printf("%3d",a[i]);
printf("\n");
return 0;
}
/* 请在这里填写答案 */
```
输入格式先输入n值再输入要排序的n个数据。
### 输入样例:
```in
6
3 5 4 6 2 1
```
### 输出样例:
```out
1 2 3 4 5 6
```

View File

@ -0,0 +1,11 @@
double f(int n, double a[], double x) {
double res = 0;
double k = 1;
for (int i = 0; i <= n; i++) {
res += a[i] * k;
k *= x;
}
return res;
}

View File

@ -0,0 +1,44 @@
# 6-4 多项式求值
本题要求实现一个函数,计算阶数为`n`,系数为`a[0]` ... `a[n]`的多项式$$f(x)=\sum_{i=0}^{n}(a[i]\times x^i)$$ 在`x`点的值。
### 函数接口定义:
```c++
double f( int n, double a[], double x );
```
其中`n`是多项式的阶数,`a[]`中存储系数,`x`是给定点。函数须返回多项式`f(x)`的值。
### 裁判测试程序样例:
```c++
#include <stdio.h>
#define MAXN 10
double f( int n, double a[], double x );
int main()
{
int n, i;
double a[MAXN], x;
scanf("%d %lf", &n, &x);
for ( i=0; i<=n; i++ )
scanf("%lf", &a[i]);
printf("%.1f\n", f(n, a, x));
return 0;
}
/* 你的代码将被嵌在这里 */
```
### 输入样例:
```in
2 1.1
1 2.5 -38.7
```
### 输出样例:
```out
-43.1
```