前提・実現したいこと
配列num に格納されている数値について,数値の桁数によって分類し数を数えたいです。また,1 桁~4 桁の4 種類に分類したとき,それぞれの分類に格納される個数は何個になるかを表示させるプログラムを作成したいです。
発生している問題
コンパイルは通るのに,何も表示されず,array配列へポインタを使用方法が分かりません。定義したcount関数に&num[0]や&cnt[0]を代入しても全ての桁数を分類してその個数を数えることができていません。array要素を実引数にする方法に慣れていないのでどのようにすれば良いか教えていただきたいです。その中でも,array配列の最初から最後までポインタを使って実行する方法が分からないので教えてほしいです。
該当のソースコード
C++
1#include<iostream> 2#include<array> 3void count(int *n,int m,int *c) { 4 *n=1; 5 while (n!=nullptr) { 6 while (*n!=0) { 7 (*n)/=10; 8 ++(*n); 9 } 10 ++(*c); 11 ++n; 12 } 13} 14 15int main() { 16 std::array num={0,1001,32,55,961,872,3,455,606,999,1055,87}; 17 std::array<int,4> cnt{0}; 18 count(&num[0],num.size(),&cnt[0]); 19 20 for (int i=0; i<cnt.size(); i++) { 21 if (i==0) std::cout<<i+1<<"digit: "<<cnt[i]<<"\n"; 22 else std::cout<<i+1<<"digits: "<<cnt[i]<<"\n"; 23 } 24 std::cout<<"\n"; 25}
試したこと
定義したcount関数のうち,()の中を(int &n[],int m,int &c[])といった表記も試しましたが,その時はエラーが出てしまいました。
補足情報
C++17を利用しています。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。