C语言中数组和int double所分配的空间是在一起的,C语言是先给这些变量分配固定的空间,才可以使用这些变量的空间,之后才会运行程序,而且c语言的变量申明必须放在程序运行之前,所有的变量遵循先申明,再使用。你之所以能在for循环的初始化中定义变量,这是c++的写法,不是C的写法,而你的文件后缀名是.cpp的,所以可以使用C++的语法。同理,局部变量,也要在局部先声明,再使用
这个n的用法好像不对吧
数组不能这样定义呀 ,n是变量
把 double a[n]改成 double a[16]试试
void fun()
{
int i,n;
double sum,ti;
scanf("%d",&n);
sum=1;
ti=1;
for(i=1;i<=n;i++)
{
ti*=i;
sum+=1.0/ti;
}
printf("%.10f",sum);
}
#include <stdio.h>
int main()
{
int n,i,tem=1;
double sum=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
tem*=i;
sum+=1.0/tem;
}
printf("%.10lf\n",sum+1);
return 0;
}