给数组输入若干大于等于0的整数,用负数作为输入结束标志,调用函数输出数组中的数据。不修改以下代码,只需补充完善后两个函数。 #define M 100 #include "stdio.h" void arrout(int *,int); int arrin(int *); void main() { int s[M],k; //k用来记录数组s中元素个数 k=arrin(s); arrout(s,k); } int arrin(int *a) { } void arrout(int *a, int n) { }
时间: 2023-12-12 12:02:05 浏览: 34
完善后的代码如下:
```c
#include "stdio.h"
#define M 100
int arrin(int *a);
void arrout(int *a, int n);
void main() {
int s[M],k;
k=arrin(s);
arrout(s,k);
}
int arrin(int *a) {
int i = 0, input;
do {
scanf("%d", &input);
if (input >= 0) {
a[i] = input;
i++;
}
} while (input >= 0 && i < M);
return i;
}
void arrout(int *a, int n) {
for (int i = 0; i < n; i++) {
printf("%d ", a[i]);
}
}
```
arrin函数的作用是输入数组中的元素,并返回数组中实际存储的元素个数。循环读取输入,如果输入值大于等于0,就将其存入数组中,同时i加1;否则跳出循环。最后返回i作为实际存储的元素个数。
arrout函数的作用是输出数组中的元素。循环遍历数组,依次输出每个元素。
相关问题
下面代码中,main函数三次调用函数fun,每次输入一组正整数,最后输出全部数据的最大值,最小值,总和,平均值。\n定义函数fun,完成一组数据处理,每组数组个数不确定,以负数结束输入,空格分隔。
代码如下:
```c++
#include <iostream>
using namespace std;
void fun() {
int num, max_num = -1, min_num = 100000, sum = , count = ;
cin >> num;
while (num >= ) {
if (num > max_num) max_num = num;
if (num < min_num) min_num = num;
sum += num;
count++;
cin >> num;
}
cout << "最大值:" << max_num << endl;
cout << "最小值:" << min_num << endl;
cout << "总和:" << sum << endl;
cout << "平均值:" << (double)sum / count << endl;
}
int main() {
for (int i = ; i < 3; i++) {
cout << "请输入一组正整数,以负数结束输入:" << endl;
fun();
}
return ;
}
```
这段代码实现了一个函数`fun`,用于处理一组数据,每组数据以负数结束输入,空格分隔。在`main`函数中,我们三次调用`fun`函数,每次输入一组正整数,最后输出全部数据的最大值,最小值,总和,平均值。
函数`fun`的实现如下:
1. 定义变量`num`,用于存储输入的数值,变量`max_num`和`min_num`分别用于存储最大值和最小值,变量`sum`用于存储总和,变量`count`用于存储输入的数值个数,初始化为。
2. 读入第一个数值`num`,如果`num`大于等于,执行以下步骤:
a. 如果`num`大于`max_num`,将`max_num`更新为`num`。
b. 如果`num`小于`min_num`,将`min_num`更新为`num`。
c. 将`num`加入到`sum`中。
d. 将`count`加1。
e. 读入下一个数值`num`。
3. 当读入的数值小于时,退出循环。
4. 输出最大值、最小值、总和和平均值。
在`main`函数中,我们使用一个循环三次调用`fun`函数,每次输入一组正整数,最后输出全部数据的最大值,最小值,总和,平均值。
main函数三次调用函数fun,每次输入一组正整数,最后输出全部数据的最大值,最小值,总和,平均值。 定义函数fun,完成一组数据处理,每组数组个数不确定,以负数结束输入,空格分隔。
好的,这是一个关于程序设计的问题,我可以给您解答。以下是程序的实现方法:
```
#include<stdio.h>
void fun(int *max, int *min, int *sum, int *count) {
int num;
scanf("%d", &num);
*max = *min = *sum = num;
*count = 1;
scanf("%d", &num);
while (num > 0) {
*count += 1;
*sum += num;
if (num > *max) *max = num;
if (num < *min) *min = num;
scanf("%d", &num);
}
}
int main() {
int max, min, sum, count;
fun(&max, &min, &sum, &count);
fun(&max, &min, &sum, &count);
fun(&max, &min, &sum, &count);
printf("max=%d,min=%d,sum=%d,avg=%.2f", max, min, sum, (float)sum/count);
return 0;
}
```
程序中定义了函数fun,用于处理一组数据。函数接收四个指针参数:max、min、sum、count,分别表示数据的最大值,最小值,总和和个数。函数内部通过scanf从输入流中读取数据,直到输入负数为止。在处理数据的过程中,同时对max、min、sum、count进行了更新。在主函数中,调用fun三次,分别输入三组数据进行处理,并通过printf输出数据的最大值,最小值,总和和平均值。
希望对您有帮助!如果您还有其他问题,可以随时问我。
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)