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
各位高手,该如何改正? 展开
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
各位高手,该如何改正? 展开
7个回答
2015-06-10 · 知道合伙人软件行家
关注
展开全部
定义数组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)。
访问数组中的每一个元素的方法都是采用上述方法,数组是一种直接存取(随机存取)的结构。
A数组的其实地址为start,则A[a][b][c]的存储地址为start+loc(a,b,c)*sizeof(int)。
访问数组中的每一个元素的方法都是采用上述方法,数组是一种直接存取(随机存取)的结构。
展开全部
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则结束
a==b==n==0 改成(a==0)&&(b==0)&&(n==0) a,b,n全为0则结束
或(a==0)||(b==0)||(n==0) a,b,c有一个为0则结束
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int at[n]={1,1};这步中 n在编译时不能确定 所以不能通过 【】内必须是确定的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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;
}
要用动态数组的话就这样用:
#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;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
数组大小必须静态确定,不可以通过输入n确定
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询