C++基础题目2

来源:百度知道 编辑:UC知道 时间:2024/06/06 09:32:33
#include <iostream.h>
#define M
void main()
{
int a[M+1],i,sum=0;
a[1]=10;
a[2]=-3;
for(i=2;i<M;i++)
a[i+1]=3*a[i]+a[i-1];
for(i=0;i<M;i++)
sum+=a[i+1];
cout<<sum<<endl;
}
有什么问题?

M的值未指定,应该是#define M 10 。

M被宏定义之后没有给定值,所以编译时会出错

程序中define M 是定义M的值的,而后边没有值,这是不对的‘
例如改为

#include <iostream.h>
#define M 10
void main()
{
int a[M+1],i,sum=0;
a[1]=10;
a[2]=-3;
for(i=2;i<M;i++)
a[i+1]=3*a[i]+a[i-1];
for(i=0;i<M;i++)
sum+=a[i+1];
cout<<sum<<endl;
}
运行结果
524
Press any key to continue

明显在#define M的时候没有定义值嘛