質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Q&A

解決済

1回答

454閲覧

100 までの素数を、1 が 9 個、2 が 3 個、3 が 9 個、4 が3 個、5 が 3 個…と数えるプログラミングにおける0の取り扱い方

legin

総合スコア1

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

0グッド

0クリップ

投稿2022/05/12 10:48

100 までの素数を、1 が 9 個、2 が 3 個、3 が 9 個、4 が3 個、5 が 3 個…と数えるプログラミングを作りたいのですが、0の取り扱いをどうしたらいいのかわからないないです。
ご教授お願い致します。

visual stadio 2019で作っています。

C言語

1#include <stdio.h> 2#include <conio.h> 3#define SIZE 100 4 5int main() 6{ 7 int x[SIZE]; 8 int a[SIZE]; 9 10 for (int i = 0; i < SIZE; i++) { 11 a[i] = 1; 12 x[i] = 0; 13 } 14 15 a[0] = 0; 16 a[1] = 0; 17 18 for (int i = 2; i < SIZE; i++) { 19 if (a[i] == 1) { 20 for (int j = 2; j < SIZE; j += i) { 21 a[j] = 0; 22 } 23 } 24 25 } 26 27 for (int i = 0; i < SIZE; i++) { 28 if (a[i] == 1) { 29 30 int n = i; 31 for (; n != 0; n /= 10); 32 x[n % 10]++; 33 34 } 35 36 } 37 38 for (int i = 0; i < 10; i++) 39 printf("%d:%d\n", i, x[i]); 40 41 42 43 return 0; 44 45 46}

実行結果
0:17
1:0
2:0
3:0
4:0
5:0
6:0
7:0
8:0
9:0

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zuishin

2022/05/12 10:53

数えなきゃいいんじゃないですか? 出題者に聞いてください。
HogeAnimalLover

2022/05/12 11:49

「100 までの素数を、1 が 9 個、2 が 3 個・・・」←まずこの意味が分かりません。
guest

回答1

0

ベストアンサー

C

1 int n = i; 2 for (; n != 0; n /= 10); 3 x[n % 10]++;

確実にこれが誤り。正しくは以下。

C

1 for (int n = i; n != 0; n /= 10) 2 x[n % 10]++;

おそらく、当初は、forの中でnを宣言していたが、エラーが出たので、外に出したと思われます。
エラーの意味を正確に把握していれば、エラー発生行がnのforの外になっていることに気付けたかと。
また、このようなミスを防ぐためにも、forやifの処理は、たとえ1行だけでも、必ず中括弧で囲むことをお勧めします。

なお、配列xの要素はSIZEに無関係に10となりますので、修正されることをお勧めします。

投稿2022/05/12 12:49

YT0014

総合スコア1708

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問