gpt4 book ai didi

c++ - 如何检查数组中的所有值是否彼此相等。 C++

转载 作者:太空宇宙 更新时间:2023-11-04 14:16:49 24 4
gpt4 key购买 nike

我想问题是......它并不是说所有的总和都相等,即使它们是相等的。我知道,这是一些糟糕的编程。 xD 我会在我的问题旁边放上一些星星。

感谢您的帮助。

#include <iostream>

using namespace std;


//function that passes a variable through and checks and sees if that variable has been used before.
bool checkArray(int pass[5][5], int toCheck)
{
bool check = false;
for(int i = 0; i < 5; i++)
{
for(int j = 0; j < 5; j++)
{
if(pass[i][j] == toCheck)
{
check = true;
}
}
}
return check;
}



int main(){
bool allTrue;
int array[5][5] = {0};
int num;
int count=0;
int arraySums[12];

for(int i = 0; i < 5; i++)
{
for(int j = 0; j < 5; j++)
{
do // do while executes when number is 1-25, and a number has not been found when run through the function to check if it is found in the array.
{
cout << "Please enter a number that will go in slot (" << i + 1 << ")(" << j + 1 << "): ";
cin >> num;
}
while(((num < 1) || (num > 25)) || (checkArray(array, num) == true));

array[i][j] = num;
}
}

//populate the arraySums Array.
//for(int i=0; i<2)




for(int i = 0; i < 5; i++) // prints out array
{
for(int j = 0; j < 5; j++)
{
cout << " | " << array[i][j] << " ";
}
cout << endl;
count++;
}

//for horizontal sums
arraySums[0]=array[0][0] + array[0][1] + array[0][2] + array[0][3] + array[0][4];
arraySums[1]=array[1][0] + array[1][1] + array[1][2] + array[1][3] + array[1][4];
arraySums[2]=array[2][0] + array[2][1] + array[2][2] + array[2][3] + array[2][4];
arraySums[3]=array[3][0] + array[3][1] + array[3][2] + array[3][3] + array[3][4];
arraySums[4]=array[4][0] + array[4][1] + array[4][2] + array[4][3] + array[4][4];

//for vertical sums
arraySums[5]=array[0][0] + array[1][0] + array[2][0] + array[3][0] + array[4][0];
arraySums[6]=array[0][1] + array[1][1] + array[2][1] + array[3][1] + array[4][1];
arraySums[7]=array[0][2] + array[1][2] + array[2][2] + array[3][2] + array[4][2];
arraySums[8]=array[0][3] + array[1][3] + array[2][3] + array[3][3] + array[4][3];
arraySums[9]=array[0][4] + array[1][4] + array[2][4] + array[3][4] + array[4][4];

//for diagonal sums
arraySums[10]=array[0][0] + array[1][1] + array[2][2] + array[3][3] + array[4][4];
arraySums[11]=array[0][4] + array[1][3] + array[2][2] + array[3][1] + array[4][0];

//to display horizontal sums
int count2=0;
for(int i = 0; i<5; i++)
{
cout << "Horizontal sum for row: " << count2+1 << " is " << arraySums[i] << endl;
count2++;
}

//to display the vertical sums.
count2=0;
for(int i = 5; i<10; i++)
{
cout << "Vertical sum for row: " << count2+1 << " is " << arraySums[i] << endl;
count2++;
}


//to display both diagonal sums
cout << "The diagonal sum from left to right is: " << arraySums[10] << endl;
cout << "The diagonal sum from right to left is: " << arraySums[11] << endl;

//*************************************************************************************************************
for(int i=0; i<13; i++)
{
if(!(arraySums[i]==arraySums[i+1]))
{
allTrue=false;
break;
}

}


if(allTrue==true)
{
cout<< "All the values are equal to each other." << endl;
}

}

最佳答案

在循环的最后一次迭代中,您正在比较 arraySums[12]==arraySums[13]。这个数组只有 12 个值,从 0-11 编号。

你的for循环应该是

for(int i=0; i<11; i++)

对就是11,12个数据集你只能做11次比较,不然最后一个跟什么比较?

编辑:说 allTrue 未初始化的答案已经丢失​​,所以我会在这里说。您必须初始化 allTrue

bool allTrue = true;

关于c++ - 如何检查数组中的所有值是否彼此相等。 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10407224/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com