gpt4 book ai didi

c 程序 递归函数 奇数

转载 作者:行者123 更新时间:2023-11-30 21:34:52 25 4
gpt4 key购买 nike

我需要C中的一个递归函数,它检查/比较奇数位置的值(整数)的总和与偶数位置的值的总和大批。还打印(在函数内部)更大的总和!

喜欢:

printf("\nThe bigger sum is %d. \n evensum = %d , oddsum = %d \n",bigger, evensum, oddsum);

假设该数组有 8 个位置,我们从 main() 中用随机值填充它。

这是我到目前为止所拥有的:

#include <stdio.h>
#define N 4


int checksum(int matrix[], int position, int sum1, int sum2);

int main(void)
{
int mat[N];
int i,j;

printf("\nEnter the %d numbers:\n", N);

for(i = 0; i < N; i++)
{
printf("%2d> ",i);
scanf("%d", &mat[i]);
}

checksum(mat, 0, 0, 0);


}

int checksum(int m[], int pos, int s1, int s2){

if(pos<N){
if(pos==0){
s1 = m[pos];
checksum(m, pos+1, s1, s2);
}else{
if(pos%2){
return s1 + checksum(m, pos+1, s1, s2);

}else{
return s2 + checksum(m, pos+1, s1, s2);
}

}

}

}

最佳答案

除了他们拿你开玩笑之外,我知道你是诚实地标记“作业”。我要向您展示的是您的解决方案。为了充分利用这一点,您应该理解它。如果没有,那你只是在欺骗自己。我真的希望这可以在其他方面帮助您,而不仅仅是完成作业。

您仍然需要用随机值填充 vector ,并打印更大的值。但这是小菜一碟。递归可以这样进行:

#include <stdio.h>
#define MAX 10

int sum(int *x, int n, int odd)
{

if(odd==-1)
{
printf("odd = %d, even = %d\n", sum(x, n, 1), sum(x, n, 0));
return 0;
}

if(n%2!=odd)
return sum(x, n+1, odd);

if(n>=MAX)
return 0;

return x[n]+sum(x, n+1, odd);
}



int main(void)
{
int x[MAX]={0,1,2,3,4,5,6,7,8,9};

sum(x, 0, -1);

return 0;
}

一方面,你的问题缺乏......如果你阅读定义时将鼠标光标暂停在标签作业上,你会读到“并表现出足够的努力”。

那么,请在根据需要调整代码后,在这里显示最终答案,作为您学习 C 语言努力的象征,怎么样? ;)

保重!贝科。

关于c 程序 递归函数 奇数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5413598/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com