mirror of
https://github.com/renbaoshuo/202401-programming-assignments.git
synced 2024-11-27 02:25:37 +00:00
【实践课内】12.函数3
This commit is contained in:
parent
c3a086d652
commit
cf20fb9c7b
11
【实践课内】12.函数3/6-1 使用函数计算两个复数之和与之积.c
Normal file
11
【实践课内】12.函数3/6-1 使用函数计算两个复数之和与之积.c
Normal file
@ -0,0 +1,11 @@
|
||||
// double result_real, result_imag;
|
||||
|
||||
void complex_add(double real1, double imag1, double real2, double imag2) {
|
||||
result_real = real1 + real2;
|
||||
result_imag = imag1 + imag2;
|
||||
}
|
||||
|
||||
void complex_prod(double real1, double imag1, double real2, double imag2) {
|
||||
result_real = real1 * real2 - imag1 * imag2;
|
||||
result_imag = real1 * imag2 + real2 * imag1;
|
||||
}
|
59
【实践课内】12.函数3/6-1 使用函数计算两个复数之和与之积.md
Normal file
59
【实践课内】12.函数3/6-1 使用函数计算两个复数之和与之积.md
Normal file
@ -0,0 +1,59 @@
|
||||
# 6-1 使用函数计算两个复数之和与之积
|
||||
|
||||
若两个复数分别为:`complex1 = real1 + imag1 i` 和 `complex2 = real2 + imag2 i`,则
|
||||
|
||||
它们的和为:`complex1 + complex2 = (real1 + real2) + (imag1 + imag2) i`
|
||||
|
||||
它们的乘积为:`complex1 * complex2 = (real1 * real2 - imag1 * imag2) + (real1 * imag2 + real2 * imag1) i`
|
||||
|
||||
本题要求实现两个函数分别计算两个复数之和、两个复数之积。
|
||||
|
||||
### 函数接口定义:
|
||||
|
||||
```c++
|
||||
void complex_add (double real1, double imag1, double real2, double imag2);
|
||||
void complex_prod (double real1, double imag1, double real2, double imag2);
|
||||
```
|
||||
|
||||
其中用户传入的参数为两个复数`real1 + imag1 i` 和`real2 + imag2 i`;函数`complex_add`和函数`complex_prod`应将计算结果的实部存放在全局变量result_real中、虚部存放在全局变量result_imag中。
|
||||
|
||||
### 裁判测试程序样例:
|
||||
|
||||
```c++
|
||||
#include <stdio.h>
|
||||
|
||||
double result_real, result_imag;
|
||||
void complex_add(double real1, double imag1, double real2, double imag2);
|
||||
void complex_prod(double x1, double y1, double x2, double y2);
|
||||
|
||||
int main(void)
|
||||
{
|
||||
double imag1, imag2, real1, real2;
|
||||
|
||||
scanf("%lf %lf", &real1, &imag1);
|
||||
scanf("%lf %lf", &real2, &imag2);
|
||||
complex_add(real1, imag1, real2, imag2);
|
||||
printf("addition of complex is (%f)+(%f)i\n", result_real, result_imag);
|
||||
complex_prod(real1, imag1, real2, imag2);
|
||||
printf("product of complex is (%f)+(%f)i\n", result_real, result_imag);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* 请在这里填写答案 */
|
||||
```
|
||||
|
||||
### 输入样例:
|
||||
|
||||
```in
|
||||
1 1
|
||||
-2 3
|
||||
```
|
||||
|
||||
### 输出样例:
|
||||
|
||||
```out
|
||||
addition of complex is (-1.000000)+(4.000000)i
|
||||
product of complex is (-5.000000)+(1.000000)i
|
||||
|
||||
```
|
22
【实践课内】12.函数3/6-2 全局变量和静态变量.c
Normal file
22
【实践课内】12.函数3/6-2 全局变量和静态变量.c
Normal file
@ -0,0 +1,22 @@
|
||||
// int max=0,min=9999999,total=0;
|
||||
|
||||
int fun() {
|
||||
int x;
|
||||
static int cnt = 0;
|
||||
|
||||
while (scanf("%d", &x) != EOF && x != -1) {
|
||||
total += x;
|
||||
|
||||
if (x > max) {
|
||||
max = x;
|
||||
}
|
||||
|
||||
if (x < min) {
|
||||
min = x;
|
||||
}
|
||||
|
||||
cnt++;
|
||||
}
|
||||
|
||||
return cnt;
|
||||
}
|
44
【实践课内】12.函数3/6-2 全局变量和静态变量.md
Normal file
44
【实践课内】12.函数3/6-2 全局变量和静态变量.md
Normal file
@ -0,0 +1,44 @@
|
||||
# 6-2 全局变量和静态变量
|
||||
|
||||
下面代码中,main函数三次调用函数fun,每次输入一组正整数,最后输出全部数据的最大值,最小值,总和,平均值。
|
||||
定义函数fun,完成一组数据处理,每组数组个数不确定,以负数结束输入,空格分隔。
|
||||
|
||||
### 函数接口定义:
|
||||
```c++
|
||||
int fun (void);
|
||||
fun返回值为这组数据的个数。(不包括结束标志)
|
||||
```
|
||||
|
||||
### 裁判测试程序样例:
|
||||
```c++
|
||||
在这里给出函数被调用进行测试的例子。例如:
|
||||
#include <stdio.h>
|
||||
int max=0,min=9999999,total=0;
|
||||
int fun (void);
|
||||
|
||||
int main()
|
||||
{
|
||||
int n;
|
||||
n=fun();
|
||||
n=fun();
|
||||
n=fun();
|
||||
printf("max=%d min=%d total=%d ave=%.1f",max,min,total,(float)total/n);
|
||||
|
||||
}
|
||||
|
||||
/* 请在这里填写答案 */
|
||||
```
|
||||
|
||||
### 输入样例:
|
||||
|
||||
```in
|
||||
10 20 30 50 -1
|
||||
11 21 31 41 51 -1
|
||||
55 56 60 -1
|
||||
```
|
||||
|
||||
### 输出样例:
|
||||
|
||||
```out
|
||||
max=60 min=10 total=436 ave=36.3
|
||||
```
|
9
【实践课内】12.函数3/6-3 累计销售.c
Normal file
9
【实践课内】12.函数3/6-3 累计销售.c
Normal file
@ -0,0 +1,9 @@
|
||||
double price(double x) {
|
||||
static double sum = 0;
|
||||
|
||||
sum += x;
|
||||
|
||||
if (sum < 5000) return sum * 0.01;
|
||||
if (sum < 10000) return sum * 0.05;
|
||||
return sum * 0.1;
|
||||
}
|
45
【实践课内】12.函数3/6-3 累计销售.md
Normal file
45
【实践课内】12.函数3/6-3 累计销售.md
Normal file
@ -0,0 +1,45 @@
|
||||
# 6-3 累计销售
|
||||
|
||||
下面代码中,main函数三次调用函数fun,每次输入一组正整数,最后输出全部数据的最大值,最小值,总和,平均值。
|
||||
定义函数fun,完成一组数据处理,每组数组个数不确定,以负数结束输入,空格分隔。
|
||||
|
||||
### 函数接口定义:
|
||||
```c++
|
||||
int fun (void);
|
||||
fun返回值为这组数据的个数。(不包括结束标志)
|
||||
```
|
||||
|
||||
### 裁判测试程序样例:
|
||||
```c++
|
||||
在这里给出函数被调用进行测试的例子。例如:
|
||||
#include <stdio.h>
|
||||
int max=0,min=9999999,total=0;
|
||||
int fun (void);
|
||||
|
||||
int main()
|
||||
{
|
||||
int n;
|
||||
n=fun();
|
||||
n=fun();
|
||||
n=fun();
|
||||
printf("max=%d min=%d total=%d ave=%.1f",max,min,total,(float)total/n);
|
||||
|
||||
}
|
||||
|
||||
/* 请在这里填写答案 */
|
||||
```
|
||||
|
||||
### 输入样例:
|
||||
|
||||
```in
|
||||
10 20 30 50 -1
|
||||
11 21 31 41 51 -1
|
||||
55 56 60 -1
|
||||
```
|
||||
|
||||
### 输出样例:
|
||||
|
||||
```out
|
||||
max=60 min=10 total=436 ave=36.3
|
||||
```
|
||||
|
14
【实践课内】12.函数3/6-4 求出二维数组的最大元素及其所在的坐标.c
Normal file
14
【实践课内】12.函数3/6-4 求出二维数组的最大元素及其所在的坐标.c
Normal file
@ -0,0 +1,14 @@
|
||||
// int Row, Col;
|
||||
|
||||
int fun(int array[N][M]) {
|
||||
for (int i = 0; i < N; i++) {
|
||||
for (int j = 0; j < M; j++) {
|
||||
if (array[i][j] > array[Row][Col]) {
|
||||
Row = i;
|
||||
Col = j;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return array[Row][Col];
|
||||
}
|
53
【实践课内】12.函数3/6-4 求出二维数组的最大元素及其所在的坐标.md
Normal file
53
【实践课内】12.函数3/6-4 求出二维数组的最大元素及其所在的坐标.md
Normal file
@ -0,0 +1,53 @@
|
||||
# 6-4 求出二维数组的最大元素及其所在的坐标
|
||||
|
||||
编写一个函数fun,函数的功能是:求出N×M整型数组的最大元素及其所在的行坐标及列坐标(如果最大元素不唯一,选择位置在最前面的一个)。
|
||||
|
||||
### 函数接口定义:
|
||||
```c++
|
||||
int fun(int array[N][M]);
|
||||
```
|
||||
|
||||
其中 `a` 是用户传入的参数。 函数须返回 N×M整型数组的最大元素,其所在的行坐标及列坐标放在全局变量Row和Col中。
|
||||
|
||||
### 裁判测试程序样例:
|
||||
```c++
|
||||
#include <stdio.h>
|
||||
#define N 4
|
||||
#define M 3
|
||||
int Row,Col;
|
||||
int fun(int array[N][M]);
|
||||
int main()
|
||||
{
|
||||
int a[N][M],i,j,max,row,col;
|
||||
for(i=0;i<N;i++)
|
||||
for(j=0;j<M;j++)
|
||||
scanf("%d",&a[i][j]);
|
||||
for(i=0;i<N;i++)
|
||||
{ for(j=0;j<M;j++)
|
||||
printf("%5d",a[i][j]);
|
||||
printf("\n");
|
||||
}
|
||||
max=fun(a);
|
||||
printf("max=%d,row=%d,col=%d",max,Row,Col);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* 请在这里填写答案 */
|
||||
```
|
||||
|
||||
### 输入样例:
|
||||
```in
|
||||
5 8 4
|
||||
4 5 11
|
||||
1 2 3
|
||||
7 4 1
|
||||
```
|
||||
|
||||
### 输出样例:
|
||||
```out
|
||||
5 8 4
|
||||
4 5 11
|
||||
1 2 3
|
||||
7 4 1
|
||||
max=11,row=1,col=2
|
||||
```
|
Loading…
Reference in New Issue
Block a user