
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ループ処理の際、最後だけ","を...
-
Java 入力した整数値の合計を、...
-
続・ZZZ,ZZZ,ZZ9形式の金額形式...
-
java キーボード入力された値の...
-
数値⇒漢数字変換 java
-
C言語のポインターに関する警告
-
System.err. printlnとSystem.o...
-
JavaScriptの変数をjavaのメソ...
-
ORA-01858: 数値を指定する箇所...
-
VBAで配列の計算
-
javaで質問です。 文字列2023/2...
-
JScrollPaneで、表示がおかしく...
-
JavaScriptを使ってロト6の当...
-
streamで送信されたArrayListを...
-
JavaScriptとVBScriptに関して
-
IF関数でEmpty値を設定する方法。
-
動的配列が存在(要素が有る)か...
-
オブジェクトの中のプロパティ...
-
1~100までの数字を表示したい
-
matchesを否定文として使う方法...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ループ処理の際、最後だけ","を...
-
続・ZZZ,ZZZ,ZZ9形式の金額形式...
-
論理演算子”||”またはの入力方法
-
java キーボード入力された値の...
-
テキストボックスに入力された...
-
総称型ArrayList<E>への参照...
-
16進数数字を結合して、10進数...
-
JAVAのfor文で困っています。
-
数値⇒漢数字変換 java
-
Java 配列<選挙>
-
Java キーボードから負の数が入...
-
Java 入力した整数値の合計を、...
-
C#の質問
-
2つのスクロールバーを連動させ...
-
java 拡張for map
-
java 配列
-
Javaの問題について
-
Javaの問題について
-
Java 4択問題の連続する2問の正...
-
javaについて質問です。
おすすめ情報
花文字というのは「*」このマークで表すことです。例えば2だったら
****
*
****
*
****
といった感じです