更新时间2019-08-10 05:35:26
void a()
{
int a[10];
for(int i=0; i<10; i++)
{
if(i==0&&a[i]==1)
{
a[10]={1,1,1,1,1,3,3,3,3,3};
}
if(i==0&&a[i]==2)
{
if(i==3&&a[i]==4)
{
a[10]={2,2,2,4,4,4,5,5,5,5};
}
if(i==3&&a[i]==6)
{
a[10]={2,2,2,6,6,6,6,7,7,7};
}
}
if(i==0&&a[i]==5)
{
a[10]={5,5,5,5,7,7,7,7,7,7};
}
if(i==0&&a[i]==7)
{
a[10]={6,6,6,6,7,7,7,7,7,7};
}
}
}
你的程序完全不符合逻辑
首先,C++数组可以直接定义及初始化
如
int a[10]={1,1,1,1,1,3,3,3,3,3}; //OK
但不能直接赋值,如你的
int a[10];
a[10]={1,1,1,1,1,3,3,3,3,3}; //ERROR
你若已定义好的数组,只能一个个赋值
a[0]=1;
a[1]=1;
a[2]=1;
a[3]=1;
a[4]=3;
(当然,可以找规律,用循环或操作符重载)
其次,你的循环完全没有逻辑了
for(int i=0; i<10; i++)
{
if(i==0&&a[i]==1)
{
a[10]={1,1,1,1,1,3,3,3,3,3};
}
程序有几个问题
1。if(i==0&&a[i]==1) 不就是a[0]==1吗?除此之外,没有其它条件可以满足的
2。同样是if(i==0&&a[i]==1)
在赋值前,a[i]的值是不可预计的,你前面没有给a[10]的任何一个数组赋值,它的值是由环境决定的(可以认为是随机的)
3。上面说过,C++不存在
a[10]={1,1,1,1,1,3,3,3,3,3};
这种赋值的语法的
另外,一个数组(任何语言)在一个时刻,它只能有一组值
不可能同时有a[10]={1,1,1,1,1,3,3,3,3,3};,a[10]={6,6,6,6,7,7,7,7,7,7};的
所以你的感觉上应该是用二维数组(当然可以用其它数组结构)
也就是
int a[5][10] = {
{1,1,1,1,1,3,3,3,3,3},
{2,2,2,4,4,4,5,5,5,5},
{2,2,2,6,6,6,6,7,7,7},
{5,5,5,5,7,7,7,7,7,7},
{6,6,6,6,7,7,7,7,7,7}
};
这个才是C++正确的数组变量定义方式
(建议,你先复习下《数据结构》这个绝对是编程的基础)
你的if语句的嵌套关系太乱了,改成case语句吧。
这是专业的问题建议您向高等院校的数学系请教吧。
这个就是是一个死循环啊
可以用switch语句来写,以i为参数。这样的话比用if语句要好很多。
而且,如果你想让程序循环而且想自己输入数组元素的话,可以试着用一下链表。不过用链表的话,挺方便的。