C语言 提示 1.表达式语法错误在main中 2.未定义的符号'F'在main中 3.无效间接运算在main中
来源:百度知道 编辑:UC知道 时间:2024/09/25 02:23:07
请教一下,这是我对照C教程写的产生Fibonacci数的程序:
#include "stdio.h"
main()
{
int F[15],i;
F[0]=0;
F[1]=1;
for(i=2;i<15;i++)
F[i]=F[i-2]+F[i-1];
for(i=0;i<15;i++)
printf("%i\n",F[i]);
return 0;
}
这是对照教程写的产生变量长度的Fibonacci数的程序:
#include "stdio.h"
main()
{
int i,n;
printf("N=?(1-75)");
scanf("%i",&n);
if(n<1||n>75){
printf("Bad!\n");
return 1;
}
unsigned long long int F[n];
F[0]=0;
F[1]=1;
for(i=2;i<n;i++)
F[i]=F[i-2]+F[i-1];
for(i=0;i<n;i++)
printf("%llu\n",F[i]);
printf("\n");
return 0;
}
第二个程序总是提示 1.表达式语法错误在main中 2.未定义的符
#include "stdio.h"
main()
{
int F[15],i;
F[0]=0;
F[1]=1;
for(i=2;i<15;i++)
F[i]=F[i-2]+F[i-1];
for(i=0;i<15;i++)
printf("%i\n",F[i]);
return 0;
}
这是对照教程写的产生变量长度的Fibonacci数的程序:
#include "stdio.h"
main()
{
int i,n;
printf("N=?(1-75)");
scanf("%i",&n);
if(n<1||n>75){
printf("Bad!\n");
return 1;
}
unsigned long long int F[n];
F[0]=0;
F[1]=1;
for(i=2;i<n;i++)
F[i]=F[i-2]+F[i-1];
for(i=0;i<n;i++)
printf("%llu\n",F[i]);
printf("\n");
return 0;
}
第二个程序总是提示 1.表达式语法错误在main中 2.未定义的符
第一,错在 unsigned long long int,两个long在一起是不可以的,long和int也不能放在一起,可改为unsigned long
先改为unsigned long F[n];
第二,改为之后,因为你是定义组F[],不能写F[n],只能这么写
unsigned long *F;
F=new unsigned long[n];
#include "stdio.h"
main()
{
int i,n;
printf("N=?(1-75)");
scanf("%i",&n);
if(n<1||n>75){
printf("Bad!\n");
return 1;
}
unsigned long *F;
F=new unsigned long[n];
F[0]=0;
F[1]=1;
for(i=2;i<n;i++)
F[i]=F[i-2]+F[i-1];
for(i=0;i<n;i++)
printf("%llu\n",F[i]);
printf("\n");
return 0;
}
我试了一下,没报错了
unsigned long long int 这个数据类型是有的 是新的int型变量 表示1个64bit的int型 但我不记得scanf有个%i的控制符 可能你的编译器不支持long long int 型吧 没事用那么大的储存干嘛 int型够用了
没有long long int类型,用__