我想找到最大值、最小值和平均值,但它为我分配了 0
i want to find maximum, minimum and average but it assigns me something for 0
我试着写一个大于54的数组,然后输出它的总和、平均值、最大值和最小值。我仍然尝试过 - 虽然通过但也失败了..(但我总是得到 0,我该如何解决?
谢谢!
{
int arr_first [10];
int min = arr_first[0];
int max = arr_first[0];
int sum = 0;
int aritm_mean = 0;
int number;
int maxArrayNumber = 54;
cout << "Fill the array (10 numbers): " << endl;
for ( int i = 0; i < 10; ) {
cin >> number;
if ( number < maxArrayNumber ) {
arr_first[number];
i++;
}
}
for ( int j = 0; j < 10; ) {
sum = sum + arr_first[number];
cout << "Sum = " << sum << endl;
j++;
}
for ( int j = 0; j < 10; j++ ) {
sum += arr_first[number];
aritm_mean = sum / 10;
}
cout << "Arithmetic mean = " << aritm_mean << endl;
for ( int j = 0; j < 10; j++ ) {
if ( max >= arr_first[0] ) {
max = arr_first[number];
}
}
cout << "Max number = " << max << endl;
for ( int j = 0; j < 10; j++ ) {
if ( min <= arr_first[0] ) {
min = arr_first[number];
}
}
cout << "Min number = " << min << endl;
}
您至少需要修复可能的越界访问:
for ( int i = 0; i < 10; ) {
cin >> number;
if ( number < maxArrayNumber ) {
arr_first[number]; //<-- possible out of bound access
i++;
}
}
越界访问,应通过以下方式解决:
arr_first[i] = number;
好的,这段代码中有很多问题。
你的第一个循环应该是这样的:
for (int i = 0; i < 10;i++ ) {
cin >> number;
if (number < maxArrayNumber) {
arr_first[i]=number;
}
你必须像那样使用 i++。
之后你不应该把 "sum" 放在循环中!
cout << "Sum = " << sum << endl;
这个应该在那个循环之外。
你的最大值和最小值:
if (arr_first[j] > max )
应该是这样的。你把它写反了
我很抱歉我不会说英语。
我试着写一个大于54的数组,然后输出它的总和、平均值、最大值和最小值。我仍然尝试过 - 虽然通过但也失败了..(但我总是得到 0,我该如何解决? 谢谢!
{
int arr_first [10];
int min = arr_first[0];
int max = arr_first[0];
int sum = 0;
int aritm_mean = 0;
int number;
int maxArrayNumber = 54;
cout << "Fill the array (10 numbers): " << endl;
for ( int i = 0; i < 10; ) {
cin >> number;
if ( number < maxArrayNumber ) {
arr_first[number];
i++;
}
}
for ( int j = 0; j < 10; ) {
sum = sum + arr_first[number];
cout << "Sum = " << sum << endl;
j++;
}
for ( int j = 0; j < 10; j++ ) {
sum += arr_first[number];
aritm_mean = sum / 10;
}
cout << "Arithmetic mean = " << aritm_mean << endl;
for ( int j = 0; j < 10; j++ ) {
if ( max >= arr_first[0] ) {
max = arr_first[number];
}
}
cout << "Max number = " << max << endl;
for ( int j = 0; j < 10; j++ ) {
if ( min <= arr_first[0] ) {
min = arr_first[number];
}
}
cout << "Min number = " << min << endl;
}
您至少需要修复可能的越界访问:
for ( int i = 0; i < 10; ) {
cin >> number;
if ( number < maxArrayNumber ) {
arr_first[number]; //<-- possible out of bound access
i++;
}
}
越界访问,应通过以下方式解决:
arr_first[i] = number;
好的,这段代码中有很多问题。 你的第一个循环应该是这样的:
for (int i = 0; i < 10;i++ ) {
cin >> number;
if (number < maxArrayNumber) {
arr_first[i]=number;
}
你必须像那样使用 i++。 之后你不应该把 "sum" 放在循环中!
cout << "Sum = " << sum << endl;
这个应该在那个循环之外。
你的最大值和最小值:
if (arr_first[j] > max )
应该是这样的。你把它写反了
我很抱歉我不会说英语。