- ベストアンサー
入力・出力について
今C言語を勉強しているのですが、 次の問題が解けなくて困っています。 (1)「neko」と入力すると、「n e k o」と文字と文字の間にスペースを挟み出力するプログラムを書け。 (2)「neko」と入力すると、 「n e k o」 と一文字づつ改行し出力するプログラムを書け。 以上2点です。 printfやscanfを使って色々考えてみたのですが、 代入ではなく入力という問題のため、 解答の糸口すら掴めません。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんな感じでいいんじゃないですか? (1) #include <stdio.h> int main(){ int i; char a[5]; printf("Enter 'neko': "); scanf("%s",a); printf("%c%c %c%c",a[0],a[1],a[2],a[3]); return 0; } (2) #include <stdio.h> int main(){ int i; char a[5]; printf("Enter 'neko': "); scanf("%s",a); for(i=0;i<4;i++){ printf("%c\n",a[i]); } return 0; }
その他の回答 (1)
- MrBan
- ベストアンサー率53% (331/615)
scanfは入力用の関数ですから、 > 代入ではなく入力という問題のため、 代入という処理が解るなら、なぜ入力だと糸口がつかめないのかわかりません。 丸投げに見える質問は禁止事項に抵触するので、 どんなことを考えたか、「色々」の部分を書いてみてください。 # ヒント:入力->処理->出力と分けて考える。
補足
素早い解答ありがとうございます。 この質問だと代入なら解るような書き方でしたね。 代入でもまったく解らないです。 今まで考えた事ですが、 (1)だと #include <stdio.h> main () { char a; scanf ("%s",&a); printf ("%c %c %c %c",a); } (2)だと、(1)のprintf ("%c %c %c %c",a);を("%c\n%c\n%c\n%c\n",a)といった具合です。 他にも色々と考えはしたのですが、会社のPCで勉強し、家のPCから質問しているためどんな事を書いたのか良く覚えてないです。 ># ヒント:入力->処理->出力と分けて考える。 とあったのですが、この問題はprintf scanf 二つの関数だけで解くことは不可能でしょうか? まだ勉強を始めたばかりでこれ以外の関数を良く知りません。
お礼
解答ありがとうございます。 教えていただいた方法で解くことができました。 配列を使うと良かったんですね。 勉強になりました。 今後は質問の仕方を考えてから投稿させていただきたいと思います。 お二方とも有難うございました。