C言語の勉強をしているものです。下記のプログラムで正しく出力できたのですが、どこか腑に落ちません。

C言語関連22閲覧

ベストアンサー

0

ThanksImg質問者からのお礼コメント

詳細な説明ありがとうございました。 漠然とした質問では会ったのですが皆さんご回答ありがとうございます。

お礼日時:5/16 22:28

その他の回答(2件)

0

既に回答がついてますが、こんな書き方も... int main(void) { int a,b; char s[2][10]={"★ ","☆ "}; char *p; srand(time(NULL)); //乱数の初期化 b = rand () % 10 + 1; //乱数発生 printf("%d\n", b); //乱数の値出力 p=b%2==0?s[0]:s[1]; for (a = 0;a<b; a++) { printf(p); } return 0; }

0

腑に落ちない点がわからないとなんとも。 ちなみに、私なら…を以下に。 #include <stdio.h> #include <time.h> #include <stdlib.h> int main(void) { int a,b; srand(time(NULL)); //乱数の初期化 b = rand () % 10 + 1; //乱数発生 printf("%d\n", b); //乱数の値出力 for (a = 0; a < b; a++) { printf(b % 2 == 0 ? "★ " : "☆ "); } return 0; }