- ベストアンサー
C言語の問題が解けません!
僕は、C言語を勉強しているのですがこの問題の答えがわかりません。 どうか教えてください。 回答お願いします。 ・問題・ 10文字以内の2つの英単語を入力し、アルファベット順で最初にくる単語を表示するプログラムを作りなさい。 /プログラム/ #include<stdio.h> #include<string.h> int main(void) { char str1[256],str2[256]; int i; printf("文字列1は?"); printf("文字列2は?"); return 0; }
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
こんな感じ? 他人が書いたプログラムでもそれをみるだけで勉強になると思うので、書いておきます。 まぁ、コンパイルも何もしていないのでコンパイルできるかというところから無保証ですが。 #include<stdio.h> #include<string.h> int main(void) { char str1[256],str2[256]; int i; printf("文字列1は?"); fgets(str1, sizeof(str1), stdin); printf("文字列2は?"); fgets(str2, sizeof(str2), stdin); if (strcmp(str1, str2) > 0) printf("%s", str1); else printf("%s", str2); return 0; } あと、よほどTAや教官が間抜けでない限りは授業で出した問題をこういうところで聞いていないか調べているものですよ。
その他の回答 (4)
- Wr5
- ベストアンサー率53% (2173/4061)
># 1文字目だけの比較でいいってことでしょうかねぇ。 ちょいと正しくなかったっす。 1文字目が同じ。って場合もあるので、そういう場合は2文字を比較…というように処理していく必要がありましたな。
お礼
回答ありがとうございました。
- SherlockHolmes2
- ベストアンサー率40% (175/429)
No.2です。 不正解です。 getcharの戻り値はint型となります。 もう少しC言語の基礎をしっかりと身につけたほうが良いと思いますよ。 参考URL : http://www1.cts.ne.jp/~clab/hsample/IO/IO14.html
お礼
回答ありがとうございました。 もう一度基礎を覚え直したいと思います。
- SherlockHolmes2
- ベストアンサー率40% (175/429)
回答するまえに私から問題を出しましょう。 キーボードから1文字入力し、画面に表示するプログラムを作成してみてください。
お礼
#include<stdio.h> int main(void) { char a; a=getchar(); putchar(a); return 0; } 上のプログラムで大丈夫ですか。
- Wr5
- ベストアンサー率53% (2173/4061)
丸投げっぷりがすばらしいですねぇ…。 >10文字以内の2つの英単語を で、 >char str1[256],str2[256]; は、無駄が多いような気もしますが。 # 不足するよりはマシですけどね。 んで、標準入力からの文字列入力については習っていないのでしょうか? scanf()とか定番ですけど。 というか独学なんですか? # 授業で習っていない…というのであれば、出題者に質問しましょう。 # 授業サボっていたのなら潔く単位を落とすか、友達を頼りましょう。(昼メシ1回くらいかな) >アルファベット順で最初にくる単語を表示する って、どういう基準なんですかね? appleとorangeならapple? # 1文字目だけの比較でいいってことでしょうかねぇ。
お礼
回答有難うございました。
補足
たぶん、そういうことだと思います。
お礼
回答ありがとうございました。 これからは、自分で解決できるよう勉強していきたいと思います。