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、按要求输出。
#include<stdio.h>
#include<malloc.h>
int main()
{
int i,n
scanf("%d\n",&n)
int *a = (int*)malloc(sizeof(int)*n)//要运行时才确定数组的长度,所以要用到动态内存分配
for(i=0i<ni++)
scanf("%d",&a[i])
if(n%2==0)
for(i=0i<n/2i++)
printf("%d ",a[i]*a[n-i-1])
else
{
for(i=0i<n/2i++)
printf("%d ",a[i]*a[n-i-1])//这里也要减1
printf("%d",a[n/2])//只有在n%2!=0是才处理“剩下”的那个数,而且不用加1再除2,因为数组的下标和元素实际位置是差1的。
}
}