我目前正在尝试使用C ++。到目前为止,我已经学会了一个程序,它允许我输入10个变量以及5个已经赋值的变量,然后找到这些数字的平均值。但是我无法弄清楚如何做到这一点,我为数组做了一个for循环,但似乎没有找到答案的平均值。以下代码有什么问题?这就是我到目前为止所做的:
#include <iostream>
using namespace std;
int cole[10];
int sum = 0;
int main()
{
int a = 10;
int b = 10;
int c = 10;
int d = 10;
int e = 35;
cout << "Please input ten numbers, one at a time" << endl;
cin >> cole[0];
cin >> cole[1];
cin >> cole[2];
cin >> cole[3];
cin >> cole[4];
cin >> cole[5];
cin >> cole[6];
cin >> cole[7];
cin >> cole[8];
cin >> cole[9];
cout << "There will now be 5 assigned variables, so that we have 15 variables" << endl;
for(int x = 0; x < 10; x++ )
{
int sum = 0;
cout << cole[x] << " ";
sum += cole[x];
cole[x]++;
}
sum += cole[0];
cole[0]++;
cout << "and " << a << " " << b << " " << c << " " << d << " " << e << endl;
cout << "The average of these numbers is: ";
sum = sum + a + b + c + d + e;
cout << sum / 15;
}
提前致谢
答案 0 :(得分:1)
请尝试以下代码:IDEONE
#include <iostream>
using namespace std;
int cole[10];
int sum = 0;
int main()
{
int a = 10;
int b = 10;
int c = 10;
int d = 10;
int e = 35;
double avg = 0;
cout << "Please input ten numbers, one at a time" << endl;
for (int i=0;i<10;i++) {
cin >> cole[i];
}
cout << "There will now be 5 assigned variables, so that we have 15 variables" << endl;
for(int x = 0; x < 10; x++ )
{
cout << cole[x] << " ";
sum += cole[x];
}
cout << "and " << a << " " << b << " " << c << " " << d << " " << e << endl;
cout << "The average of these numbers is: ";
sum = sum + a + b + c + d + e;
avg = sum / 15.0;
cout << avg;
}
请记住,平均值不应该是整数值 - 它会将数字四舍五入到底线。并且记住你可以在循环中输入数组中的每个值,而不是一个一个地输入。你还在循环中一次又一次地声明了“int sum = 0”,因此在循环内部看不到全局和。我也删除了一些不需要的代码。你可以看看,欢呼
答案 1 :(得分:1)
#include <iostream>
using namespace std;
int coleCount = 10;
int cole[coleCount];
int sum = 0;
int main()
{
int a = 10;
int b = 10;
int c = 10;
int d = 10;
int e = 35;
cout << "Please input ten numbers, one at a time" << endl;
for(int i = 0; i < coleCount; i++)
{
cin >> cole[i];
}
cout << "There will now be 5 assigned variables, so that we have 15 variables" << endl;
for(int i = 0; i < coleCount; i++ )
{
cout << cole[i] << " ";
sum += cole[i];
//cole[x]++; why are you incrementing this?
}
//sum += cole[0]; why?
//cole[0]++; why?
cout << "and " << a << " " << b << " " << c << " " << d << " " << e << endl;
cout << "The average of these numbers is: ";
sum += (a + b + c + d + e);
cout << sum / 15;
}
答案 2 :(得分:0)
摆脱循环中的int sum = 0
和cole[x]++;
。也是如此失败:
sum += cole[0];
cole[0]++;
循环后。
答案 3 :(得分:0)
int sum = 0;
这需要在循环之外,你不断重置总和。
答案 4 :(得分:0)
您宣布sum
两次。从for循环中删除声明!
for(int x = 0; x < 10; x++ )
{
cout << cole[x] << " ";
sum += cole[x];
cole[x]++;
}
答案 5 :(得分:0)
固定代码:
#include <iostream>
using namespace std;
int cole[10];
int sum = 0;
int main()
{
int a = 10;
int b = 10;
int c = 10;
int d = 10;
int e = 35;
cout << "Please input ten numbers, one at a time" << endl;
cin >> cole[0];
cin >> cole[1];
cin >> cole[2];
cin >> cole[3];
cin >> cole[4];
cin >> cole[5];
cin >> cole[6];
cin >> cole[7];
cin >> cole[8];
cin >> cole[9];
cout << "There will now be 5 assigned variables, so that we have 15 variables" << endl;
int sum = 0; //initialize sum outside the for loop
for(int x = 0; x < 10; x++ )
{
cout << cole[x] << " ";
sum += cole[x];
cole[x]++;
}
//sum += cole[0]; //this seems unnecessary
//cole[0]++;
cout << "and " << a << " " << b << " " << c << " " << d << " " << e << endl;
cout << "The average of these numbers is: ";
sum = sum + a + b + c + d + e;
cout << sum / 15;
}