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

这是一道C语言的编程题。
最好用数组解决

int a[10]={...............};//自己写10个数字,用,号隔开。
int min;
for(int i=0;i<10;i++)
{
int curr;
if(i==0)
{
curr=a[i]+a[i+1]+a[9];
min=curr;
}
else if(i==9)
{
curr=a[i]+a[0]+a[i-1];
}
else
{
curr=a[i-1]+a[i]+a[i+1];
}
if(min>curr)
{
min=curr;
}

}
printf("%d",&min);
温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-04-28
一个笨方法:
再声明一个长度为10的数组,分别存储10个和值,然后对这个数组找最小值.
第2个回答  2007-04-28
#include <stdio.h>
#include <stdlib.h>
#define N 10
main()
{
int i,mini;
int minsum,sum;
int a[N];
randomize();
for (i=0;i<N;i++)
a[i]=rand()%10;

minsum=a[0]+a[1]+a[2];
mini=0;
for (i=1;i<N;i++)
{
sum=a[i%N]+a[(i+1)%N]+a[(i+2)%N];
if (sum<minsum)
{
minsum=sum;
mini=i;
}
}
printf("a=\n");
for (i=0;i<N;i++)
printf("%d\t",a[i]);
printf("order for:%d\n",mini);
printf("data for:%d\t%d\t%d\n",a[mini%N],a[(mini+1)%N],a[(mini+2)%N]);
printf("sum=%d\n",minsum);
getch();
}本回答被提问者采纳