C++11 在学校使用for循环时遇到问题

C++11 在学校使用for循环时遇到问题,c++11,C++11,我目前在学校上C/C++编程课。我的任务是编写一段代码,询问用户希望平均多少个数字,然后对它们进行平均。程序必须包含for循环。我遇到的问题是,在用户输入“n”变量后,如果他们键入一个字符,如“a”,程序将立即给出一个答案作为我的平均值。我想找到一种方法来防止用户输入字符,这样我的for循环就可以完成运行并正确地平均数字。这是我的密码: { int n, i = 1, x = 1; double sum = 0, average, value; cout <&l

我目前在学校上C/C++编程课。我的任务是编写一段代码,询问用户希望平均多少个数字,然后对它们进行平均。程序必须包含for循环。我遇到的问题是,在用户输入“n”变量后,如果他们键入一个字符,如“a”,程序将立即给出一个答案作为我的平均值。我想找到一种方法来防止用户输入字符,这样我的for循环就可以完成运行并正确地平均数字。这是我的密码:

{
    int n, i = 1, x = 1;
    double sum = 0, average, value;


    cout << "\nHow many numbers do you want to average?: ";
    cin >> n;

    while (n < 1)
    {
        cout << "\nYou have entered an invalid number.\n";
        cout << "\nHow many numbers do you want to average?: ";
        cin.clear();
        while (cin.get() != '\n');
        cin >> n;
    }

    for (n; i <= n; i++)
    {
        cout << "\nEnter value: ";
        cin >> value;

        sum = sum + value;  

    }

    average = sum / n;

    cout << "\nThe average is: " << average << endl;

    system("pause");

    return 0;

}
{
int n,i=1,x=1;
双和=0,平均值,数值;
cout>n;
而(n<1)
{
cout n;
}
对于(n;i)值;
总和=总和+价值;
}
平均值=总和/n;

CUT可以将初始CIN放在一个循环中,并检查变量是一个数字。当它作为一个数字分解时,中断循环并继续。