AtCoder Beginner Contest 138 A – Red or Not

簡単な A 問題をちょこちょこやってみてます。これぐらいのソースはリファレンスとか見なくても書けるようになりたいよねぇって思いなんですけど、それでも、あれ?どうするんだっけ?ってなることが日常茶飯な meyon さん。

AtCoder Beginner Contest 138 A – Red or Not

問題文
整数 a と、英小文字からなる文字列 s が入力されます。
a が 3200 以上なら s と出力し、a が 3200 未満なら red と出力するプログラムを書いてください。

難しいことは何もないのですが、いざソースを書こうとしたら文字列の扱い方がわからない (^_^;)

文字列は配列に入れる。文字数が10文字ならば最後にヌルを付けて11文字分必要になるので、

  1.   char s[11];
  2.   scanf("%s", s);

とする。間違えて s[10] としてもヌルの分は自動的に足してくれるらしい。s[] としておけば必要なだけ割り当ててくれる。

代入するときは s[] じゃなくて s だけ書く。これはポインタを示しているらしい。

出力は同様に、

  1.   printf("%s¥n", s);

とすれば、文字列として出力される。

  1.   printf("%c¥n", s[2]);

のようにすると、3 文字目が出力される。

まぁそんな感じかな。

ってことでこんなふうになりました。

  1. #include <stdio.h>
  2. int main()
  3. {
  4.   int a;
  5.   char s[11];
  6.   scanf("%d %s", &a, s);
  7.   if (3200<=a) {
  8.     printf("%s¥n", s);
  9.   } else {
  10.     printf("red¥n");
  11.   }
  12.   return 0;
  13. }

なお、ソースコードの表示には「srctohtml ソースをHTMLで見やすく出力するツール」を利用させていただきました。ありがとうございます。

タイトルとURLをコピーしました