点数を読みこんで、平均点と平均点から最も点差が離れた人を求めるプログラムなのですが、エラーで、score_diffの呼び出しに対応する関数がありませんと表示されます。なぜなのでしょうか?
#include <iostream> using namespace std; void average(int num, int sum, double* ave) { *ave = sum/num; } void score_diff(int num, double ave, int* diff, int *p) { for(int i=2; i<=num; i++){ // 2人目から if((p[*diff]-ave)*(p[*diff]-ave)<=(p[i]-ave)*(p[i]-ave)){ *diff = i; } } } int main() { int *p; p= new int[100]; int num; //人数 int sum; //合計点 double ave; //平均点 int diff=1; // 一番離れている人 cout << "人数を入力してください:" ; cin >> num; cout << num << "人の点数の平均点と平均から最も離れている人を求めます。\n"; for(int i=1; i<=num; i++){ cout << i << "番の点数:"; cin >> p[i]; sum += p[i]; } average(num,sum,&ave); score_diff(num,ave,&diff,&p); cout << "平均点は" << ave << "点です。\n"; int multi=0; // 複数いる場合は0 cout << "平均から最も点差が離れているのは"; for(int i=1; i<=num; i++){ if((p[diff]-ave)*(p[diff]-ave) == (p[i]-ave)*(p[i]-ave)){ if(multi){ cout << "と"; } cout << i << "番の人(" << p[i]-ave << "点)"; multi=1; } } cout << "です。\n"; return 0; }
回答2件
あなたの回答
tips
プレビュー