- 締切済み
教えてください。
手入力された数字(数字の条件:1以上15以下で奇数のみ)でダイヤモンド方を表示するプログラム。 (例)手入力した数字が5の場合 * *** ***** ←ここが5になるようにする。 *** * うまくプログラムを組むことが出来ません。言語はカテゴリーにも記載しているC言語です。わかる方教えて下さい。 よろしくお願い致します。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- hiro0163
- ベストアンサー率100% (1/1)
まだまだ小生ですが、こんな感じかと…。 半分以降は、自分で考えて下さい。 フラグで区切ってある、前半部がヒントです。 #include <stdio.h> #include <stdlib.h> #include <ctype.h> int main(void) { unsigned char *key_in; unsigned int diamond_num; unsigned int line = 0; unsigned int n, m; int flg_fst = 0; /* 入力された数値の振るい落とし */ printf("1以上15以下で奇数のみ\n"); gets(key_in); diamond_num = atoi(key_in); if ( 15<diamond_num || diamond_num<1 ) return 0; if (diamond_num%2 == 0) return 0; /* Diamondを描く */ do { if (flg_fst == 0) { for (n = diamond_num/2-line; 1<=n; n--) { printf(" "); } for (m=1; m<(line+1)*2; m++) { printf("*"); } } else { /* ここは自分で */; } printf("\n"); if ((line*2)+1 == diamond_num) { flg_fst = 1; } line++; }while (line != diamond_num); return 0; } 動作確認環境 OS:WnidowsXP コンパイラ:bcc32
- asuncion
- ベストアンサー率33% (2127/6290)
> うまくプログラムを組むことが出来ません。 ということは、なにがしかのコードは書かれたのですね。 それを提示してみるおつもりはありますか?
まずは、自分が考えたプログラムを補足しましょう。 丸投げは削除対象になってしまいますよ。