这段程序为啥不工作

来源:百度知道 编辑:UC知道 时间:2024/05/30 08:01:24
#include <stdio.h>
#include <stdlib.h>

int digui(int n)
{
if (n<=3)
{
return n;
printf("%d",n);
}
else
{
return digui(n-1)+digui(n-3);
printf("O");
}
}
int main()
{
int m,n,sum=0,a,mod=0,ret=0;
printf("Please input two intgers:n,m;and n must be littter than 10000\n");
printf("m must be bigger than 2 and litter than 10000\n");
scanf("%d %d",&n,&m);

if (n>10000||m<2||m>10000)
printf("what you input is wrong please correct.\n");
else
{
sum = digui(n);
mod =sum % m;
printf("%d,%d\n",sum,mod);
}

return 0;
}
原题是
Function f(n) is recursively defined as:

if (n>10000||m<2||m>10000) ?

修改过
#include <stdio.h>
#include <stdlib.h>

int digui(int n)
{
if (n<=3)
{
return n;
printf("%d",n);
}
else
{
return digui(n-1)+digui(n-3);
printf("O");
}
}
int main()
{
int m,n,sum=0,mod=0,ret=0;
printf("Please input two intgers:n,m;and n must be littter than 10000\n");
printf("m must be bigger than 2 and litter than 10000\n");
scanf("%d %d",&n,&m);

if(n<=10000||m>=2&&m<=10000)
printf("what you input is wrong please correct.\n");
else
{
sum = digui(n);
mod =sum % m;
printf("%d,%d\n",sum,mod);
}

return 0;
}