C语言,运行结果不正确。

来源:百度知道 编辑:UC知道 时间:2024/05/17 04:59:11
#include <stdio.h>
float c(int m,int n)
{
int i,j,k;
float rst,ch=1.0,pr=1.0;
for(i=1;i<=m;i++)
ch=ch*i;
for(j=1;j<=n;j++)
pr=pr*j;
for(k=1;k<=(m-n);k++)
pr=pr*k;

rst=ch/pr;
return rst;
}

void main()
{
int i=1,j=1;
float re;
scanf("%d",&i);
scanf("%d",&j);
re=c(i,j);
printf("%d",re);
}
结果总是0;不知道哪里错了。

将printf("%d",re); 改为printf("%f",re);就解决了,因为计算出来的数值用整形输出的话,就会以整数输出,当数值等于0点几的时候,就会约为0输出的!

printf("%f",re);

rst=ch/pr;
printf("%d",re);

一楼的对了``