请看看这个30行的小程序里面有什么错误啊!谢谢 急用
#include "Stdio.h"
#include "Conio.h"
int main(void)
{
long m,n;
double c;
while(1)
{
printf("%s","input number m:");
scanf("%ld",&m);
printf("%s","input number n(n>m):");
scanf("%ld",&n);
printf("%s%ld%s%ld","you input number m=",m,",n=",n);
if(m>n)
{
printf("%s","you input number must n>m\n");
continue;
}
c=factorial(m,n);
printf("%s%lf%s","c=",c,"\n");
}
}
double factorial(long m,long n)
{
long mc=1,nc=1,nmc=1;
long i=1;
double c;
for(;i<=m;i++)
mc=mc*i;
i=1;
for(;i<=n;i++)
nc=nc*i;
i=1;
for(;i<=(n-m);i++)
nmc=nmc*i;
c=nc/((mc*nmc)*1.0);
return c;
}
问题点数:10、回复次数:10Top
1 楼lbing7(向青润老大学习!!!)回复于 2005-06-02 20:30:59 得分 0
printf("%s","input number n(n>m):");
不用这样写
printf("input number n(n>m):");
足了Top
2 楼wohenmimang(wohen迷茫)回复于 2005-06-02 20:31:04 得分 1
太难啦,我是刚学这东西不久,看不懂。Top
3 楼lbing7(向青润老大学习!!!)回复于 2005-06-02 20:32:32 得分 1
有个问题就是你的while(1){}没有退出条件Top
4 楼foochow(无聊,灌水......)回复于 2005-06-02 20:33:01 得分 2
#include "Stdio.h"
#include "Conio.h"
double factorial(long m,long n);//忘了这里-_-
int main(void)
{
long m,n;
double c;
while(1)
{
printf("%s","input number m:");
scanf("%ld",&m);
printf("%s","input number n(n>m):");
scanf("%ld",&n);
printf("%s%ld%s%ld","you input number m=",m,",n=",n);
if(m>n)
{
printf("%s","you input number must n>m\n");
continue;
}
c=factorial(m,n);
printf("%s%lf%s","c=",c,"\n");
}
}
double factorial(long m,long n)
{
long mc=1,nc=1,nmc=1;
long i=1;
double c;
for(;i<=m;i++)
mc=mc*i;
i=1;
for(;i<=n;i++)
nc=nc*i;
i=1;
for(;i<=(n-m);i++)
nmc=nmc*i;
c=nc/((mc*nmc)*1.0);
return c;
}
Top
5 楼sunman1982(冥王星)回复于 2005-06-02 20:33:20 得分 2
#include "Stdio.h"
#include "Conio.h"
double factorial(long m,long n)//*******
{
long mc=1,nc=1,nmc=1;
long i=1;
double c;
for(;i<=m;i++)
mc=mc*i;
i=1;
for(;i<=n;i++)
nc=nc*i;
i=1;
for(;i<=(n-m);i++)
nmc=nmc*i;
c=nc/((mc*nmc)*1.0);
return c;
}//**********8
int main(void)
{
long m,n;
double c;
while(1)
{
printf("%s","input number m:");
scanf("%ld",&m);
printf("%s","input number n(n>m):");
scanf("%ld",&n);
printf("%s%ld%s%ld","you input number m=",m,",n=",n);
if(m>n)
{
printf("%s","you input number must n>m\n");
continue;
}
c=factorial(m,n);
printf("%s%lf%s","c=",c,"\n");
}
}
ok 运行良好Top
6 楼cosio()回复于 2005-06-02 20:36:29 得分 2
#include "Stdio.h"
#include "Conio.h"
int main(void)
{
long m,n;
double c;
while(1)
{
printf("%s","input number m:");
scanf("%ld",&m);
printf("%s","input number n(n>m):");
scanf("%ld",&n);
printf("%s%ld","you input number m=",m);
printf("\n");
printf("%s%ld","you input number n=",n);
printf("\n");
if(m>n)
{
printf("%s","you must input number ***** n > m ***** \n");
break;
}
c=fact(m,n);
printf("\n");
printf("%s%lf%s","c=",c,"\n");
}
}
fact(long m,long n)
{
long mc=1,nc=1,nmc=1;
long i=1;
double c;
for(;i<=m;i++)
mc=mc*i;
i=1;
for(;i<=n;i++)
nc=nc*i;
i=1;
for(;i<=(n-m);i++)
nmc=nmc*i;
c=nc/((mc*nmc)*1.0);
return c;
}
Top
7 楼tian_su(问天(渺小得惶恐))回复于 2005-06-02 20:37:11 得分 2
在你的主函数main()之前,
加个factorial()函数的声明,
double factorial(long ,long );
int main(void)
{
......
}
就OK了Top
8 楼jy00057800(cc)回复于 2005-06-02 20:38:13 得分 0
那里的问题啊 看拉半天没看出来Top
9 楼jy00057800(cc)回复于 2005-06-02 20:40:07 得分 0
哦 知道拉 ,我忘记拉 ,学拉java 都忘记拉 谢谢大家Top
10 楼jy00057800(cc)回复于 2005-06-02 20:41:45 得分 0
但是我这个程序怎么 可以把主函数写再前面,不用声明啊
#include "Stdio.h"
#include "Conio.h"
int main(void)
{
char ch;
int x;
while(1)
{ scanf("%c",&ch);
x=isdigital(ch);
if(x==1)
printf("%s","you input a digital char\n");
if(x==-1)
printf("%s","you input is not digital char\n");
}
}
int isdigital(char ch)
{
if(ch>=97&&ch<=122)
return 1;
else
if(ch==10)
return 0;
else
return -1;
}Top




