' for' for' for运行不好

时间:2016-04-10 15:01:59

标签: c++ for-loop average

当我试图运行程序并执行它时,for循环并没有重复一个适当的形式,当我试图执行它时,看来我是这样的:

Enter a number:
5.6
Enter a number:
Enter a number:
Enter a number:
Enter a number:
Enter a number:
Enter a number:
Enter a number:
Enter a number:
Enter a number:

我试图搜索有关此问题的一些信息,但我找不到任何内容。我知道这是一个愚蠢的问题,但我不知道还有什么地方可以转。感谢帮助。 我给你留下了我的代码:

#include <iostream>
using namespace std;
int main (void){
    int num, sum;
    float average;
    for(int i=0; i<10; i++){
        cout << " Enter a number: " <<endl;
        cin >>i;
        sum += num;
    }   
        average = num / 10;
        cout << " The total average is:\n " << media <<endl; 
}

2 个答案:

答案 0 :(得分:0)

float无法格式化输入操作。它期待一个整数,但你输入了一个浮点数。因此,它失败了。将输入更改为doubleint main()

您的代码还有几个问题:

  • 您可以写int main(void),而不是voidcin在这里非常有用
  • 使用前始终初始化变量
  • 有时,检查#include <iostream> using namespace std; int main (){ int num = 0, sum = 0; float average = 0; for(int i=0; i<10; i++){ cout << " Enter a number: " <<endl; if(!(cin >> num)){ //you can also use a while loop to force requirement of proper input cin.clear(); cin.ignore(100000, '\n'); // you can print an error message here } else sum += num; } average = static_cast<float>(sum) / 10; cout << " The total average is:\n " << average <<endl; } 失败并在必要时报告错误

更正代码......

===

请参阅Why would we call cin.clear() and cin.ignore() after reading input?

答案 1 :(得分:0)

你有三件事情是不正确的:

  • 首先,您必须在使用前初始化 sum ,如 int sum = 0;
  • 其次,输入的数字必须保存在变量中。您不能将 i 用作该变量,因为它是循环迭代器,因此您可以使用 num
  • 最后,媒体对您的计划没有任何意义。我知道你打算使用平均值

在纠正所有这些后,您的程序应如下所示:

#include <iostream>
using namespace std;
int main (void){
    int num, sum=0;
    float average;
    for(int i=0; i<10; i++){
        cout << " Enter a number: ";
        cin >>num;
        sum += num;
    }   
    average = num / 10;
    cout << " The total average is:\n " << average <<endl; 
    system("pause");
}