課題 [10] 文字列(9/9)

問 9(提出プログラム名:ex1009.c)

まず,このプログラム(ex1009.c)をダウンロードしなさい.
そして,次の①と②を行いなさい.
①このプログラムにはインデントが全く付けられておらず,不適切な書き方になっている.
 VSCode の自動インデント(フォーマット)機能を使ってインデントを適切に修正しなさい.
②このプログラムでは英単語を繰り返し読み込み,
 a または A で始まる単語が 2 回登場したら終了するように作ったつもり
 でしたがうまくいきませんでした. 誤り(2 個所)を見つけて修正し,提出しなさい.

【ヒント】
scanf で文字列を入力する場合は特別に & を付けないのが正しいのですが,
わざわざ & を付け加えるという間違いをする人が例年います.

いったんインデントを整理してみれば 1 つ目の誤りにはすぐに気付くことができるでしょう.

【注意】
本課題の趣旨は,与えられたプログラム内の誤りを見つけて修正することなので,(インデントの修正は別として)内容を過度に書き換えるのは誤りと見なします(ごく一部のみを修正すればうまく動くプログラムになっています).
まれにゼロから作り直したりする人がいますが誤り扱いとなります.

<禁止事項>
● 変数を追加してはいけません.
● 変数の名前を変えてはいけません.
● 全体の行数を大きく変えてはいけません.(変更が必要でも,行数の増減は数行以下にとどめよ)

  • 【目標としていたプログラムの実行結果】(その1)※赤字は実行時にキーボードから入力する内容
単語を入力し続けてください:
> Hello
Hello (a,A で始まっていません)
> I'm
I'm (a,A で始まっていません)
> Hirohisa
Hirohisa (a,A で始まっていません)
> Aman
Aman [a,A で始まっています] (1 個目)
> see
see (a,A で始まっていません)
> you
you (a,A で始まっていません)
> again
again [a,A で始まっています] (2 個目)

終了です

  • 【目標としていたプログラムの実行結果】(その2)※赤字は実行時にキーボードから入力する内容
単語を入力し続けてください:
> a
a [a,A で始まっています] (1 個目)
> A
A [a,A で始まっています] (2 個目)

終了です

【過去にあったミス(実際に減点となり,やり直しを命じられた例)】
■ 上の実行例と出力が違っていることを見落としている.
インデントに不備がある(VSCode 上でインデントを自動で揃える作業をやっていない).


問 4 ~問 9 は 6/22(月)23:59 までに提出を済ませなさい.
(ex1004.c, ex1005.c, ex1006.h, ex1007.h, ex1008.c, ex1009.c を Moodle から提出してください.)
くれぐれも各問題で記載されている注意事項や「過去にあったミス」を見落とさないようにしてください.
なお,提出後に間違いに気付いた場合,〆切前であれば差し替え(上書き)は可能です.