我在c编程中有一个问题(也可能在其他语言中) 考虑这个计划:
(我想在不使用数组的情况下编写可以被3分割的最后一个输入数字......并且只是递归)
int func( int n )
{
int a;
if (n==0)
return 0;
scanf("%d",&a);
function(n-1);
if(a%3==0)
{
printf("%d\n",a);
return 1;
}
}
但不幸的是,它以相反的顺序打印可分为3的数字(我想要的最后一个数字可以被3分割)
答案 0 :(得分:0)
您必须返回要打印的值,如果它有效且之前没有返回其他有效值(例如,使用-1作为无效标记)
int func (int n) {
int a;
if (n == 0)
return -1;
scanf("%d", &a);
int ret = func(n-1);
if ((ret == -1) && (a%3 == 0))
ret = a;
return ret;
}
现在您可以打印func()
的返回值。
printf("%d\n", func(100)); // For 100 values