前提・実現したいこと
現在C++でポインタ演算を用いて配列の平均と最大数、最小数を求めるコードを書いております。
関数 void meanHighLow(int* array, int size, double &average, int &high, int &low)からのポインタの渡し方の理解が乏しいのでコードが最後まで書けずつまずいてしまいました。
該当のソースコード
C++
1#include <iostream> 2 3using namespace std; 4 5void meanHighLow(int* array, int size, double &average, int &high, int &low); 6 7int main() { 8 9 const int size = 5; 10 int num[size] = {1, 2, 3, 4, 5}; 11 double mean = 0; 12 int max = 0; 13 int min = 0; 14 15 meanHighLow(num, size, mean, max, min); 16 17 cout << "The average is " << mean << endl; 18 19 cout << "The high value is " << max << endl; 20 21 cout << "The low value is " << min << endl; 22 23 24 return 0; 25} 26 27void meanHighLow(int* array, int size, double &average, int &high, int &low) { 28 int count = 0, sum = 0; 29 30 int *ptr; 31 ptr = array; 32 33 for (int i = 0; i < size; i++) { 34 ptr++; 35 sum = sum + *(ptr + i); 36 count++; 37 } 38 39 average = sum / size; 40 41 high = array[0]; 42 low = array[0]; 43 44 for (int i = 1; i < size; i++) { 45 if(low > array[i]) 46 low = array[i]; 47 if (high < array[i]) 48 high = array[i]; 49 } 50}
/Users/jane/CLionProjects/pointerArithmetic/cmake-build-debug/pointerArithmetic
Process finished with exit code 11
上記が私のコードのアウトプットです。
空白しか表示されません。
これら
cout << "The average is " << mean << endl;
cout << "The high value is " << max << endl; cout << "The low value is " << min << endl;
がアウトプットに表示されないのは何故でしょうか。教えて頂けるとありがたいです。
試したこと
多くの国内や海外のウェブサイトでみて試行錯誤しながらコードを書いていますがつまずいてしまいました。
回答4件
あなたの回答
tips
プレビュー