c语言题帮忙解啊,,

来源:百度知道 编辑:UC知道 时间:2024/06/18 02:24:01
#include"stdio.h"
main()
{
int n,x;
printf("n=");
scanf("%d",&n);
printf("x=");
scanf("%d",&x);
printf("%d",p(n,x));
getchar();
getchar();
}
int p(a,b)
int a,b;
{
int s=0;
if(a==0) return(1);
if(a==1) return(b);
else
{
s=((2b-1)*b*p(a-1,b)-(a-1)*p(a-2,b))/a;
return(s);
}
}
怎么老是有个错误呢? expression syntax in function p 我不晓得怎么改啊,,求助.

你的程序写的好奇怪啊,我是这样改的
#include <stdio.h>
int p(int,int);//函数p要先申明,让main函数知道有这么个方法
int main()
{
int n,x;
printf("n=");
scanf("%d",&n);
printf("x=");
scanf("%d",&x);
printf("%d",p(n,x)); //这里调用的话,要先申明
getchar();
getchar();
return 0;
}
//最好把代码写的规范点,容易调试
int p(int a,int b)
{
int s=0;
if(a==0)
{
return(1);
}
else if(a==1)
{
return(b);
}
else
{
s=((2*b-1)*b*p(a-1,b)-(a-1)*p(a-1,b))/a; //这里你是s=((2b-1)*b*p(a-1,b)-(a-1)*p(a-2,b))/a;
return(s);
}
}

表达式错误
int p(int a,int b)
main里头也没函数说明

int p(a,b)
int a,b;
这不是正确的函数定义

int p(inta,intb)

{
int s=0;
if(a==0) return(1);
if(a==1) return(b);
else
{
s=((2b-1)*b*p(a-1,b)-(a-1)*p(a-2,b))/a;
return(s);