【解決方法】この C 言語の問題をどのように解決しますか?

[ad_1]

この文字列「127a33069b1708r831c8457」の各偶数桁と合計桁数を数えます。 ライブラリを使用しないでください。 たとえば、出力結果は次のようになります。
2-1回
0 ~ 2 回
6 — 1回
8 — 3 回
4 — 1回
合計桁 – 19

私が試したこと:

2-1 time
0 -- 2 times
6 -- 1 time
8 -- 3 times
4 -- 1 time
Total digit - 19

解決策 1

私たちは立ち往生している人々を喜んで助けますが、それは私たちがあなたのためにすべてをするためにここにいるという意味ではありません! 私たちがすべての作業を行うことはできません。あなたはこれに対して報酬を受け取っているか、またはそれはあなたの成績の一部であり、私たちがあなたのためにすべてを行うことはまったく公平ではありません.

だから私たちはあなたが仕事をする必要があり、あなたが行き詰まったときにあなたを助けます. それは、あなたが提出できる段階的な解決策を提供するという意味ではありません!
現在の状況と、プロセスの次のステップを説明することから始めます。 次に、その次のステップを機能させるために何を試みたか、またその際に何が起こったかを教えてください。

開始するのに問題がある場合は、これが役立つ場合があります。 問題を解決するためのコードの書き方、初心者向けガイド[^]

解決策 2

文字の出現をカウントするプログラムから始めます '0' 文字列で(単純なループと1つの変数で十分です…)。
次に、おそらくカウンターの配列を使用して一般化します。

解決策 3

信じられないほど単純なものから劇的なやり過ぎまで、これを解決する方法はたくさんあります。 それらすべてに共通しているのは、物事を段階的に分解する必要があるということです。

ここで問題を分析してみましょう。 固定文字列 (127a33069b1708r831c8457)、各桁の出現回数をカウントします。 このことから、私たちは自分自身を数に制限していることを知っています。

これに対する単純な擬似コード 解決策は次のようになります。

Create a data structure to hold the character, and the count of times you have seen the character
Loop over the string until we have read all the characters
  Get the character at the current index in the loop
  If the character is a number
    Look for the character and see if it is present in the data structure
    If it is present, increment the count End If
    If it is not present, add it and set the count to 1 End If
  End If
End Loop
Create a counter to hold the total number of matched digits
Loop over the data structure
  Print out the character and count
  Add the count to the total in the counter above
End Loop
Print out the counter

[ad_2]

コメント

タイトルとURLをコピーしました