こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

プログラミング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です。

投稿日時 - 2011-05-24 13:24:32

QNo.6760158

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

まあ、391文字は39文字の間違いだとして、
セミコロンは適切に入っていると仮定して、

「下線部には何もいらない」というのも、正しい解答かと。

投稿日時 - 2011-05-26 08:59:26

ANo.2

> 下線部を埋めてプログラムを完成させなさい。

完成させることは不可能です。
ただし、コンパイルオプション等でマクロ定義できるのであれば、可能性はあります。
charマクロを定義すればかなりいい線までいきますが、1行めのiの後にセミコロンがないのが難度を高くしています。

投稿日時 - 2011-05-25 01:38:37

ANo.1

Wr5

>char x[40],i
>scanf("%s",x);
>for(i=0;x[i]_____;i++)
>printf("%c",x[i]);

なので…
>キーボードから入力される文字列の文字数が391文字以下である限り
不可能です。

バッファオーバーフローして終了します。
40mlの小瓶に391mlの液体は入りません。

投稿日時 - 2011-05-24 13:59:54

あなたにオススメの質問