
javaの課題で正の整数を入力したらその数を花文字に変換するという課題が出ました。1~9の数字を花文字として表せるようにしましたが、そのプログラムを実行すると入力した数字と違う数字が花文字で出力します。どこがおかしいのか教えてもらえませんか? 下のは自分の書いたプログラムです。
package ensyuu5;
import java.util.Scanner;
import javax.swing.plaf.basic.BasicComboBoxUI.ItemHandler;
import javax.xml.namespace.QName;
class ensyuu5 {
public static void main(String[] args){
Scanner stdIn = new Scanner(System.in);
int num;
do{
System.out.print("正の整数(最大8桁)を入力してください:");
num = stdIn.nextInt();
}while( num < 0 || num > 99999999);
int count = String.valueOf( num ).length();
for (int c = count,keta = num; c >= 1; c--){
keta = (keta / 10 ^ (c - 1));
if (keta % 10 == 0 || keta % 10 == 2 || keta % 10 == 3 || keta % 10 == 5 || keta % 10 == 6 || keta % 10 == 7 || keta % 10 == 8 || keta % 10 == 9){
System.out.print(" **** ");
}
else if (keta % 10 == 1){
System.out.print(" ** ");
}
else if (keta % 10 == 4){
System.out.print(" * * ");
}
}
System.out.println();
for (int c = count,keta = num; c >= 1; c--){
keta = (keta / 10 ^ (c - 1));
if (keta % 10 == 0 || keta % 10 == 8 || keta % 10 == 9){
System.out.print(" * * ");
}
else if (keta % 10 == 1){
System.out.print(" * ");
}
else if (keta % 10 == 2 || keta % 10 == 3 || keta % 10 == 7){
System.out.print(" * ");
}
else if (keta % 10 == 4){
System.out.print(" * * ");
}
else if (keta % 10 == 5 || keta % 10 == 6){
System.out.print(" * ");
}
keta = num;
}
System.out.println();
for (int c = count,keta = num; c >= 1; c--){
keta = (keta / 10 ^ (c - 1));
if (keta % 10 == 0){
System.out.print(" * * ");
}
else if (keta % 10 == 1){
System.out.print(" * ");
}
else if (keta % 10 == 8 || keta % 10 == 3 || keta % 10 == 4 || keta % 10 == 5 || keta % 10 == 6 || keta % 10 == 2 || keta % 10 == 9){
System.out.print(" **** ");
}
else if (keta % 10 == 7){
System.out.print(" * ");
}
keta = num;
}
System.out.println();
for (int c = count,keta = num; c >= 1; c--){
keta = (keta / 10 ^ (c - 1));
if (keta % 10 == 0 || keta % 10 == 8 || keta % 10 == 6){
System.out.print(" * * ");
}
else if (keta % 10 == 1 || keta % 10 == 4){
System.out.print(" * ");
}
else if (keta % 10 == 2){
System.out.print(" * ");
}
else if (keta % 10 == 3 || keta % 10 == 5 || keta % 10 == 9 || keta % 10 == 7){
System.out.print(" * ");
}
keta = num;
}
System.out.println();
for (int c = count,keta = num; c >= 1; c--){
keta = (keta / 10 ^ (c - 1));
if (keta % 10 == 0 || keta % 10 == 1 || keta % 10 == 2 || keta % 10 == 3 || keta % 10 == 5 || keta % 10 == 6 || keta % 10 == 8 || keta % 10 == 9){
System.out.print(" **** ");
}
else if (keta % 10 == 4){
System.out.print(" * ");
}
else if (keta % 10 == 7){
System.out.print(" * ");
}
keta = num;
}
}
}
A 回答 (7件)
- 最新から表示
- 回答順に表示
No.6
- 回答日時:
import java.util.Scanner;
import javax.swing.plaf.basic.BasicComboBoxUI.ItemHandler;
import javax.xml.namespace.QName;
class ensyuu5 {
public static void main(String[] args) {
Scanner stdIn = new Scanner(System.in);
int num;
do {
System.out.print("正の整数(最大8桁)を入力してください:");
num = stdIn.nextInt();
} while (num < 0 || num > 99999999);
int count = String.valueOf(num).length();
for (int c = count, keta = num; c >= 1; c--) {
keta = (keta / (int) Math.pow(10, c - 1));
if (keta % 10 == 0 || keta % 10 == 2 || keta % 10 == 3 || keta % 10 == 5 || keta % 10 == 6 || keta % 10 == 7
|| keta % 10 == 8 || keta % 10 == 9) {
System.out.print(" **** ");
} else if (keta % 10 == 1) {
System.out.print(" ** ");
} else if (keta % 10 == 4) {
System.out.print(" * * ");
}
keta = num;
}
System.out.println();
for (int c = count, keta = num; c >= 1; c--) {
keta = (keta / (int) Math.pow(10, c - 1));
if (keta % 10 == 0 || keta % 10 == 8 || keta % 10 == 9) {
System.out.print(" * * ");
} else if (keta % 10 == 1) {
System.out.print(" * ");
} else if (keta % 10 == 2 || keta % 10 == 3 || keta % 10 == 7) {
System.out.print(" * ");
} else if (keta % 10 == 4) {
System.out.print(" * * ");
} else if (keta % 10 == 5 || keta % 10 == 6) {
System.out.print(" * ");
}
keta = num;
}
System.out.println();
for (int c = count, keta = num; c >= 1; c--) {
keta = (keta / (int) Math.pow(10, c - 1));
if (keta % 10 == 0) {
System.out.print(" * * ");
} else if (keta % 10 == 1) {
System.out.print(" * ");
} else if (keta % 10 == 8 || keta % 10 == 3 || keta % 10 == 4 || keta % 10 == 5 || keta % 10 == 6
|| keta % 10 == 2 || keta % 10 == 9) {
System.out.print(" **** ");
} else if (keta % 10 == 7) {
System.out.print(" * ");
}
keta = num;
}
System.out.println();
for (int c = count, keta = num; c >= 1; c--) {
keta = (keta / (int) Math.pow(10, c - 1));
if (keta % 10 == 0 || keta % 10 == 8 || keta % 10 == 6) {
System.out.print(" * * ");
} else if (keta % 10 == 1 || keta % 10 == 4) {
System.out.print(" * ");
} else if (keta % 10 == 2) {
System.out.print(" * ");
} else if (keta % 10 == 3 || keta % 10 == 5 || keta % 10 == 9 || keta % 10 == 7) {
System.out.print(" * ");
}
keta = num;
}
System.out.println();
for (int c = count, keta = num; c >= 1; c--) {
keta = (keta / (int) Math.pow(10, c - 1));
if (keta % 10 == 0 || keta % 10 == 1 || keta % 10 == 2 || keta % 10 == 3 || keta % 10 == 5 || keta % 10 == 6
|| keta % 10 == 8 || keta % 10 == 9) {
System.out.print(" **** ");
} else if (keta % 10 == 4) {
System.out.print(" * ");
} else if (keta % 10 == 7) {
System.out.print(" * ");
}
keta = num;
}
}
}
このようにすれば動きます
なぜ動かなかったのかは自分で考えてみてください
無駄をなくしたverも添えておきますので勉強の役に立ててください
https://harigami.net/cd?hsh=01ae3482-b088-4014-8 …
また何か分からないことがあったら気軽に聞いて下さい
No.3
- 回答日時:
描画カーソルを移動できない環境向けならば、
繰り返し処理を工夫して行ごとに描画しましょう。
for (行=0; 行<幅; 行++) {
_ for (字=0; 字<字数; 字++) {
_ _ for (桁=0; 桁<幅; 桁++) {
_ _ _ 数 = 入力値から指定した位の数を取得(字)
_ _ _ 点 = 数を表す字形にて指定位置の点灯有無を判定(数, 桁, 行)
_ _ _ 出力(点? "*": " ")
_ _ }
_ _ 出力(文字間隔)
_ }
_ 出力(改行)
}
No.2
- 回答日時:
> 花文字というのは「*」このマークで表すことです。
何?それをキミが通ってる学校では「花文字」って呼んでるの?
なんつーローカル定義だ・・・・・・。
正式名称は「アスタリスク」だ。覚えておいた方がいいだろう。
> 例えば2だったら
なるほど。
でもそれだけじゃあ全然足りない。
0〜9の全部の定義を出さないと他人が見てどーの、とは言えないよ。
こういうのは定義次第、なんだ。
No.1
- 回答日時:
うん、その前にだな。
「花文字」って何?
どう考えても一般的な用法に思えないんだけど。
花文字とは:
http://hanamoji.info/index.php?%E8%8A%B1%E6%96%8 …
そこが他人に分かるようにキチンと説明出来なければ、「どこがおかしいのか」なんか答えようがない。
だって何が正解なんだかサッパリ分かんないんだもん。

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Ruby パイソンプログラミング 2 2022/12/03 18:44
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- Ruby vscode 文字化け 1 2022/05/21 19:17
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- UNIX・Linux 次の要件を満たすにはどのように修正したらよろしいでしょうか 1 2022/11/24 20:57
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- C言語・C++・C# プログラミング c言語 4 2023/03/07 01:05
- PHP PostgreSQLからCSV形式でエクスポートする際にカラム内の改行をとる方法 1 2023/02/22 10:05
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Randomメソッドの確率設定
-
ループ処理の際、最後だけ","を...
-
7つ数字を表示したら改行すると...
-
java キーボード入力された値の...
-
数値⇒漢数字変換 java
-
JAVAのfor文で困っています。
-
javaです。 途中まで出来ている...
-
続・ZZZ,ZZZ,ZZ9形式の金額形式...
-
論理演算子”||”またはの入力方法
-
画面出力の際の繰り返しと入力...
-
javaプログラムについて
-
2つのスクロールバーを連動させ...
-
Java、2の0乗~10乗の表示
-
複数の数字を計算
-
テキストボックスに入力された...
-
countに実行した回数をいれたい...
-
javaプログラミングでの文字化...
-
Javaでゲームを作ったのですが...
-
コマンドライン引数の例外処理...
-
Javaの問題について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ループ処理の際、最後だけ","を...
-
論理演算子”||”またはの入力方法
-
続・ZZZ,ZZZ,ZZ9形式の金額形式...
-
java キーボード入力された値の...
-
Randomメソッドの確率設定
-
テキストボックスに入力された...
-
countに実行した回数をいれたい...
-
総称型ArrayList<E>への参照...
-
javaプログラムについて
-
JAVAのfor文で困っています。
-
繰り返しによる星印の出力
-
Java 配列<選挙>
-
javaです。 途中まで出来ている...
-
数値⇒漢数字変換 java
-
Ctrl+Zが入力されると終了する...
-
java 入力 3 4 3 出力 ABC DEFG...
-
エラー(互換性の無い型)
-
Java 入力した整数値の合計を、...
-
【JAVA <identifier>がありま...
-
2つのスクロールバーを連動させ...
おすすめ情報
花文字というのは「*」このマークで表すことです。例えば2だったら
****
*
****
*
****
といった感じです