用C语言求三个相邻数的和,编写函数有10个数围成一圈,求出相邻三个数之和的最小值并返回最小值的起始数组元素的下标...

满意答案

00e27ab806e4881f8254fe7ae8741834.png

QQ270714445

2013.12.11

00e27ab806e4881f8254fe7ae8741834.png

采纳率:59%    等级:12

已帮助:13219人

/*

编写函数有10个数围成一圈,求出相邻三个数之和的最小值,

并返回最小值的起始数组元素的下标(用指针变量做函数参数传递最小的值,

函数原型为int min(int *a,int n,int *minval))。

*/

int min(int *a, int n, int *minval)

{

int index = 0;

int i;

int sum;

*minval = *a + *(a+1) + *(a+2); /* 初始值 */

/* 控制比较次数 */

for(i=1; i

{

sum = *(a+i) + *(a+(i+1)%n) + *(a+(i+2)%n); /* 统计相邻3个数之和 */

if(sum < *minval)

{

index = i; /* 记录最小值的起始数组元素的下标 */

*minval = sum; /* 记录最小值 */

}

}

return index;

}

void main()

{

int arr[] = {5,1,6,8,9,6,3,3,4,5};

int n = 10;

int *minval = &n;

int index;

index = min(arr, n, minval);

printf("min value : %d\n", *minval);

printf("start index : %d\n", index);

}

00分享举报

你可能感兴趣的:(用C语言求三个相邻数的和)