- 締切済み
プログラミングC
以下に示すプログラムは、キーボードから39文字以下の文字列を入力した後で、その文字列を表示するプログラムである。ただし、文字列の表示においては、printf命令における変換指定で、%sを使用するのが一般的であるが、以下のプログラムあえて%sを使用せずに、%cを使っている。このプログラムについてキーボードから入力される文字列の文字数が391文字以下である限り、その文字列を正しく表示できるよう、下線部を埋めてプログラムを完成させなさい。 char x[40],i printf("39文字以下の文字列を入力:"); scanf("%s",x); for(i=0;x[i]_____;i++) printf("%c",x[i]); printf("です。\n"); [実行例] 39文字以下の文字列を入力:programming 入力された文字列はprogrammingです。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- 麻野 なぎ(@AsanoNagi)
- ベストアンサー率45% (763/1670)
まあ、391文字は39文字の間違いだとして、 セミコロンは適切に入っていると仮定して、 「下線部には何もいらない」というのも、正しい解答かと。
- jacta
- ベストアンサー率26% (845/3158)
> 下線部を埋めてプログラムを完成させなさい。 完成させることは不可能です。 ただし、コンパイルオプション等でマクロ定義できるのであれば、可能性はあります。 charマクロを定義すればかなりいい線までいきますが、1行めのiの後にセミコロンがないのが難度を高くしています。
- Wr5
- ベストアンサー率53% (2173/4061)
>char x[40],i >scanf("%s",x); >for(i=0;x[i]_____;i++) >printf("%c",x[i]); なので… >キーボードから入力される文字列の文字数が391文字以下である限り 不可能です。 バッファオーバーフローして終了します。 40mlの小瓶に391mlの液体は入りません。