简单的平均计算

sas*_*h90 1 c++ average

我正在尝试编写程序计算存储在数组中的给定数字的平均值.数量不应超过100,用户应输入它们,直到给出!int变量:

#include <iostream>
#include <conio.h>
using namespace std;

double average(int tab[], int i){

    int sum=0;

    for(int j=0; j<i; ++j){
            sum+=tab[j];
    }
    return (double)sum/i;

}

int main()
{
    int tab[100];
    int n=0;   
    int number=0;


    do {
       if(n < 100){
           cout << "Give " << n+1 << " number : ";
           cin >> number;
           tab[n]=number;
           number=0;
           ++n;       
       }
       else{
            break;
       }
    } while( !isdigit(number) );      

    cout << average(tab, n) << endl;

    getch();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

为什么在给char之后,它为我阵列的所有空单元格打印出'Give n number:'?它应该结束并仅使用给定的数字.

Pau*_*l R 5

你在isdigit这里使用不正确 - 它用于测试a是否char为数字 - 你不能用它来测试int.

您可能想要考虑使用特殊值来终止输入,例如-1-999.如果这是不可接受的,那么你需要读取一个字符串而不是一个int,然后决定它是否是数字.