c语言中将一个数组中,相邻得元素俩俩相加找出最大得组合
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言中将一个数组中,相邻得元素俩俩相加找出最大得组合相关的知识,希望对你有一定的参考价值。
1、算法就是一次循环,每次比较两个值的和与初始值的大小,不断更新,最后输出最大值。
2、例程:
#include <stdio.h>double maxSumOfAdjEle(double* A, int n)
int i = 0;
double res;
if(0 >= n) return 0;
if(1 == n) return A[0];
if(2 == n) return A[0] + A[1];
res = A[0] + A[1]; //初始值
for(i = 1; i < n - 1; i++) //一次循环
if(res < A[i] + A[i + 1]) //比较初始值和每次的大小
res = A[i] + A[i + 1]; //更新初始值
return res;
int main()
double A[] = .0, -1, 2.2, -3.3;
printf("%f", maxSumOfAdjEle(A, sizeof(A) / sizeof(double)) );
getchar();
return 0;
参考技术A
大概是这个样子。
#include <stdio.h>double maxSumOfAdjEle(double* A, int n)
int i = 0;
double res;
if(0 >= n) return 0;
if(1 == n) return A[0];
if(2 == n) return A[0] + A[1];
res = A[0] + A[1];
for(i = 1; i < n - 1; i++)
if(res < A[i] + A[i + 1])
res = A[i] + A[i + 1];
return res;
int main()
double A[] = .0, -1, 2.2, -3.3;
printf("%f", maxSumOfAdjEle(A, sizeof(A) / sizeof(double)) );
getchar();
return 0;
maxSumOfAdjEle的第一个参数是数组地址,第二个参数是元素个数。我不太明白你是想要得到最大的组合值,还是最大的组合元素,我暂且就按你想要最大的和来写的。如果想要最的组合元素,返回下标就行了。
本回答被提问者采纳 参考技术B #include<stdio.h>int main(void)
int arry[50];
int first=0,next=0,sum=0;
//输入
for(int i=0;i<50;i++)
arry[i]=i+1;
for(int i=0;i<50;i++)
//临时变量
int first1=arry[i];
int next1=arry[i+1];
int sum1=first1+next1;
if(sum1>sum)
//保存信息
first=first1;
next=next1;
sum=sum1;
//输出
if(sum!=0)
printf("the max sum = %d \\tthe first elem = %d \\t the next elem = %d\\n",sum,first,next);
getchar();
return 0;
如何用C语言编写一个求两数相加得和的小程序。
参考技术A利用C语言编写一个求两数相加的和的编程思想和方法如下:
1.首先需要定义三个变量a,b,c,两个为相加的数,第三个为相加后得到的和。
2.然后使用scanf()语句接收从键盘输入的两个数,为变量a,b赋值。
3.接着进行a和b的加法运算,将结果赋值给变量c。
4.最后使用printf()语句将计算结果显示在屏幕上。
5.代码编写完毕后,点击运行后即可在调试窗口看到程序的运行结果。
以上是关于c语言中将一个数组中,相邻得元素俩俩相加找出最大得组合的主要内容,如果未能解决你的问题,请参考以下文章
C语言编程:找出一个二维数组的“鞍点”,即该位置上的元素在该行上最大,在该列上最小。也可能没有鞍点。