#include <iostream>
int main(){
bool check;
int lenght=1,height=1;
int array[height][lenght];
std::cin>>height;
int a=0;
for(int i=1;i<=height;i++){
std::cin>>lenght;
for(int i=0;i<=lenght;i++)
std::cin>>array[a][i];
if (lenght%2==0){
int array1[height][lenght/2],array2[height][lenght/2];
for(int i=0;i<=lenght/2;i++)
array1[a][i]=array[a][i];
for(int i=0;i<=lenght/2;i++)
array2[a][i]=array[a][lenght-i-1];
for(int i=0;i<=lenght/2;i++)
if(array1[a][i]!=array2[a][i])
check= false;
a++;
check=true;
if(check==true)
std::cout<<"its rainbow array ! ";
else
std::cout<<"you cant get any unicorn :(";
}
else{
int array1[height][lenght/2-1],array2[height][lenght/2-1];
for(int i=0;i<lenght/2-1;i++)
array1[a][i]=array[a][i];
for(int i=0;i<lenght/2-1;i++)
array2[a][i]=array[a][lenght-i-1];
for(int i=0;i<lenght/2-1;i++)
if(array1[a][i]!=array2[a][i])
check= false;
a++;
check=true;
if(check==true)
std::cout<<"its rainbow array ! ";
else
std::cout<<"you cant get any unicorn :(";
}
}
}
對不起,對不起。我試圖檢查我們是否將數組分成一半,然後檢查這些部分是否匹配。 例如= 1,2,3,4,5,6 ==>這不是彩虹陣列 1,2,3,4,5,4,3,2,1 ==>這是彩虹陣列。 這是程序應該如何工作:檢查彩虹陣列(檢查陣列的反向風格是否與自身匹配)
1 =用戶輸入一個整數,這將是我們的高度,告訴我們將測試多少個號碼列表。 2 =用戶輸入第一個列表將會有多長時間。然後程序將從用戶列表中獲取輸入。 3 =程序應將主要列表分爲2個次要列表。 4 =將主要列表元素複製到2個次要列表中。
在最後階段,它比較2列表並將bool值更改爲true或false。但在我的情況下,它總是如此。這是我幾個小時前寫的一個工作代碼。
#include <iostream>
bool checkarray(int *array,int lenght);
int main(){
int array[9]={1,2,3,4,5,4,3,2,4};
int lenght=9;
if(checkarray(array,lenght)==true)
std::cout<<"its rainbow array ! ";
else
std::cout<<"you cant get any unicorn :(";
}
bool checkarray(int array[],int lenght){
if (lenght%2==0){
int array1[lenght/2],array2[lenght/2];
for(int i=0;i<=lenght/2;i++)
array1[i]=array[i];
for(int i=0;i<=lenght/2;i++)
array2[i]=array[lenght-i-1];
for(int i=0;i<=lenght/2;i++)
if(array1[i]!=array2[i])
return false;
return true;
}
else{
int array1[lenght/2-1],array2[lenght/2-1];
for(int i=0;i<lenght/2-1;i++)
array1[i]=array[i];
for(int i=0;i<lenght/2-1;i++)
array2[i]=array[lenght-i-1];
for(int i=0;i<lenght/2-1;i++)
if(array1[i]!=array2[i])
return false;
return true;
}
}
但是,無論何時我想添加用戶體驗,它都會像第一個代碼一樣發生。請幫助
'int array [height] [lenght];' - 這和看起來像這樣的行不是合法的C++。 C++要求數組使用常量來表示條目的數量,而不是變量。 – PaulMcKenzie
@PaulMcKenzie所以我如何描述2維動態數組?與新的int?虐待 –
'#包括'然後'std :: vector > array(height,std :: vector (length));' –
PaulMcKenzie