【发布时间】:2022-01-15 09:58:56
【问题描述】:
(仅限递归解决方案)我正在使用函数:int diff(char str[],int i) 输入是字符串:123,偶数索引中的值的总和是 1+3=4 奇数索引中的值之和为 2 所以数组中偶数索引的值之和与奇数索引的值之和之间的差是:4-2= 2。
我主要写了这个,但它不正确,我该如何修复我的代码? :
printf("Enter a string:");
if(scanf("%s",str)!=1)
{
printf("Input error");
return 1;
}
printf("The difference is: %d", diff(str, 0));
return 0;
在主要功能之外:
int diff (char str[], int i)
{
if(str[i]=='\0' || i>=100)
return 0;
if(i%2==0)
return (str[i]+diff(str,i+1));
else
return (-str[i] +diff(str,i+1));
}
【问题讨论】:
-
借此机会学习如何调试您的程序。例如,在监视变量及其值的同时,使用调试器逐语句逐句执行代码。对于每个递归调用,在纸上写下
i和str[i]的当前(递归调用之前)值,然后进入调用。
标签: c recursion function-definition