查找一维数组 a 的最大元素和最小元素的下标,分别存放在函数main()的maxsub和minsub变量中。 #include <stdio.h> void find(int *, int, int *, int *); int main(void) { int maxsub, minsub, a[]={5, 3, 7, 9, 2, 0, 4, 1, 6, 8}; find( ); printf("%d,%d\n", maxsub, minsub); return 0; } void find(int *a, int n, int *maxsub, int *minsub) { int i; *maxsub = *minsub = 0; for (i = 1; i < n; i++){ if (a[i] > a [*maxsub]){ ; } if (a[i] < a [*minsub]){ ; } } return; }
时间: 2023-12-03 07:02:25 浏览: 668
下面是修改后的代码:
```
#include <stdio.h>
void find(int *, int, int *, int *);
int main(void) {
int maxsub, minsub, a[] = {5, 3, 7, 9, 2, 0, 4, 1, 6, 8};
find(a, 10, &maxsub, &minsub);
printf("%d,%d\n", maxsub, minsub);
return 0;
}
void find(int *a, int n, int *maxsub, int *minsub) {
int i;
*maxsub = *minsub = 0;
for (i = 1; i < n; i++) {
if (a[i] > a[*maxsub]) {
*maxsub = i;
}
if (a[i] < a[*minsub]) {
*minsub = i;
}
}
return;
}
```
修改的内容:
1. 在 `main()` 函数中调用 `find()` 函数时,加上了数组 `a` 的指针和元素个数 `10`,以及 `maxsub` 和 `minsub` 的地址。
2. 在 `find()` 函数中,修改了 `if` 语句中的空语句,将其改为把当前下标赋值给 `*maxsub` 或 `*minsub`。同时,在函数结束时添加了 `return` 语句(虽然不是必须的,因为 `void` 函数默认会返回)。
阅读全文