C语言程序如下:
#include <stdio.h>
void fun(int a[],int n,int *k)
{
int i,maxxr,j
maxxr=a[0]
for(i=0i<ni++)
{
if(maxxr<a[i])
{
maxxr=a[i]
}
}
for(i=0i<ni++)
{
if(maxxr==a[i]){
j=i
break
}
}
*k=j
}
int main(void)
{
int a[10]={ 876,675,896,101,301,401,980,431,451,777},k
fun(a, 10, &k)
printf("%d,%d", k, a[k])
}
扩展资料:
思路:
1、先定义数组(其数组长度取最大值,题目要求为10),然后通过for循环给数组一个个赋值,即可得到一个数组;
2、找数组的最大值,这一步是最关键的一步,由于所输入的值不确定那个是最大值,故可以先设置另一个一个变量(index)来存储最大值变量的下标。
3、紧接着继续在数组里for循环,逐一跟下标为index的值相比较,如果比下标为index的值大,这时候就将两者中数值大的下标赋值给index。
4、按要求输出。
求数组中的最大值和最小值,一般使用假设法,即假设数组的第1个元素为最大值,同时也是最小值,然后遍历数组,找到最大值和最小值。示例如下:
#include<stdio.h>
int main()
{
int a[] = {1,2,3,4,5,6,7,8,9,10}
int max, min
max = min = a[0] //假设第1个元素即是最大值也是最小值。
int max_pos = 0, min_pos = 0
//遍历数组,找出数组a中的最大数和最小数
for (int inx=0 inx!=sizeof(a) / sizeof(int) ++inx) {
if (a[inx]> max) max = a[inx], max_pos=inx
else if (a[inx] < min) min = a[inx], min_pos=inx
}
printf("最大数:%d\t最小数:%d\n", max ,min )
return 0
}