#include <stdio.h> void *findMax(int a[],int n,int *k){ int i; *k=0; for(i=1;i<n;i++){ if(a[*k]<a[i]) *k=i; } } void main(){ int a[10]={28,8,-91,6,81,56,-1,-145,5,17}; *findMax(a[],10,&k); printf("最大值为%d,其下标为",a[k],k); return 0; }
时间: 2024-03-12 11:48:34 浏览: 53
SeqList.h #include <stdio.h> //包含标准输入输出流的头文件 #include <assert.h
这段代码存在几个问题:
1. 函数findMax没有返回值类型,应该声明为int类型。
2. 函数findMax中的参数k没有定义,应该在main函数中定义一个int类型的变量k,并传入函数findMax中。
3. main函数中调用findMax函数时,应该直接传入数组a,而不是a[]。
4. printf语句中,逗号后面应该是变量k,而不是&k。
下面是修正后的代码:
```
#include <stdio.h>
int findMax(int a[], int n, int *k) {
int i; *k = 0;
for(i = 1; i < n; i++) {
if(a[*k] < a[i]) {
*k = i;
}
}
return a[*k];
}
int main() {
int a[10] = {28, 8, -91, 6, 81, 56, -1, -145, 5, 17};
int k;
int max = findMax(a, 10, &k);
printf("最大值为%d,其下标为%d", max, k);
return 0;
}
```
阅读全文