我正在尝试编写程序计算存储在数组中的给定数字的平均值.数量不应超过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:'?它应该结束并仅使用给定的数字.
你在isdigit这里使用不正确 - 它用于测试a是否char为数字 - 你不能用它来测试int.
您可能想要考虑使用特殊值来终止输入,例如-1或-999.如果这是不可接受的,那么你需要读取一个字符串而不是一个int,然后决定它是否是数字.