请帮帮忙!请回zhenghongyun@china.com

zhengbo999 2001-07-18 09:49:57
我是C的初学者,有下面一个问题,请指教。
我做了一个简单的程序:SN=1!+2!+...+n!
程序如下:
#include "math.h"
sni(a) /*N 的阶乘*/
int a;
{
int k;
a=i;
float sni;
sni=1;
for (k=1;k<=a;k++)
sni=sni*i;
return (sni);
} /*N 的阶乘*/

main() /*主程序*/
{
int n,i,a;
float Sn,s;
Sn=0;
scanf ("%d",&n);
for (i=1;i<=n;i++)
{
Sn=Sn+sni(a);
if (i==n)
printf ("%f",Sn);
}
}
为什么不行?
难道子程序不能带进主程序的变量的值?
请指教!
...全文
129 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
kbsoft 2001-09-13
  • 打赏
  • 举报
回复
N!=N*(N-1)!
kbsoft 2001-09-13
  • 打赏
  • 举报
回复
是我疏忽了
kbsoft 2001-09-13
  • 打赏
  • 举报
回复
是子程序出了问题。
子程序中的Return(sni),中的SNI定义了吗/
Frazy 2001-09-13
  • 打赏
  • 举报
回复
何必这样编?
lxm512 2001-09-12
  • 打赏
  • 举报
回复
我告诉你:
sni(int a)
{
int k;sum
sum=1;
for(k=1;k<=a;k++)
sum=sum*sni(int a);
return (sum);
}
l_ran 2001-07-19
  • 打赏
  • 举报
回复
主程序中照HFMING的改
子程序中把a=i 去掉,sni()该弄个类型吧
bc3 2001-07-19
  • 打赏
  • 举报
回复
sni返回一个什么数据类型?没定义
假如提供一个用递归的函数选答案吗?
hfming 2001-07-19
  • 打赏
  • 举报
回复
主函数中的变量 a 有什么用吗?
把主函数中for循环中的Sn=Sn+sni(a),改为Sn=Sn+sni(i)才对。
anjun 2001-07-19
  • 打赏
  • 举报
回复
子程序的参数用引用类型

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧