c++中数组该怎么定义

#include<iostream>usingnamespacestd;intmain(){intn,i,a,b;while(cin>>a>>b>>n){if(a==b=... #include<iostream>
using namespace std;

int main()
{
int n,i,a,b;
while(cin>>a>>b>>n)
{
if(a==b==n==0) break;
else{
int at[n]={1,1};
for(i=2;i<n;i++)
{
at[i]=(a*at[i-1]+b*at[i-2])%7;
}
cout<<at[n-1]<<endl;
}
}
return 0;
}
编译时出错,variable-sized object "at" may not be initiasized
各位高手,该如何改正?
展开
 我来答
轻言淺苏
2015-06-10 · 知道合伙人软件行家
轻言淺苏
知道合伙人软件行家
采纳数:1 获赞数:207
专业软件技术,会c语言,java.......还在学习艺术设计(视觉传达方向)本科知识。

向TA提问 私信TA
展开全部
定义数组int A[i1][i2][i3];c++中数组是按行连续分配内存的,数组中的任意元素A[a][b][c]在数组中的位置loc与下标有如下映射关系loc(a,b,c)=a*i2*i3+b*i3+c;
A数组的其实地址为start,则A[a][b][c]的存储地址为start+loc(a,b,c)*sizeof(int)。
访问数组中的每一个元素的方法都是采用上述方法,数组是一种直接存取(随机存取)的结构。
huhao18802
2009-10-18
知道答主
回答量:10
采纳率:0%
帮助的人:0
展开全部
at[n] 中n改成个具体数字 比想输的n大一点就行了 直接at[]这样貌似也行

a==b==n==0 改成(a==0)&&(b==0)&&(n==0) a,b,n全为0则结束
或(a==0)||(b==0)||(n==0) a,b,c有一个为0则结束
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
想爱你而又不能
2009-10-18 · TA获得超过1477个赞
知道小有建树答主
回答量:276
采纳率:0%
帮助的人:224万
展开全部
int at[n]={1,1};这步中 n在编译时不能确定 所以不能通过 【】内必须是确定的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Ms_yam
2009-10-18 · TA获得超过712个赞
知道小有建树答主
回答量:152
采纳率:100%
帮助的人:112万
展开全部
int at[n]={1,1};不能这样声明数组。

要用动态数组的话就这样用:
#include<iostream>
using namespace std;

int main()
{
int n,i,a,b,*at;
while(cin>>a>>b>>n)
{
if(a==b==n==0 || n<2) break;
else{
at = new int[n];
*at = 1;
*(at+1) = 1;
for(i=2;i<n;i++)
{
at[i]=(a*at[i-1]+b*at[i-2])%7;
}
cout<<at[n-1]<<endl;
delete at;
at = NULL;
}
}
return 0;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
霜寄秀9
2009-10-18 · 超过28用户采纳过TA的回答
知道答主
回答量:124
采纳率:0%
帮助的人:0
展开全部
数组大小必须静态确定,不可以通过输入n确定
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式