利用は初めてなんですが どうしでもエラー表示がうまくできません

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
初心者

利用は初めてなんですが どうしでもエラー表示がうまくできません

#1

投稿記事 by 初心者 » 17年前

問題は~~~scanf関数を利用して、文字列を10回入力し、最もおおきな文字列を表示する
*未入力の比較はstrcmpを使用し
*未入力の場合はエラーとし、もう一度入力するようにする事。
よろしくお願いします

ソース

#include <stdio.h>
#include <string.h>
#define MAXN 10


void main(void) {
char str[100];
int i;
char max[256];
for(i=0; i<MAXN; i++)
{
Loop:
printf("文字列入力:\n");
scanf("%s",&str);
if (strlen(str)==0)
{
printf("入力エラー");
goto Loop;
}
if (strcmp(max,str)<0 )
{
strcpy(max,str);
}
}
printf("%s\n",max);
}

組木紙織

Re:利用は初めてなんですが どうしでもエラー表示がうまくできません

#2

投稿記事 by 組木紙織 » 17年前

最初はmaxには何が入っていますか?

問題文で気になることが、

>最もおおきな文字列を表示する
 最も大きな文字列とはどのような文字列ですか?
 strcmpを使っているということは辞書順を想定してあると思いますが。

>*未入力の比較はstrcmpを使用し
 未入力の比較とあるのですが、未入力と比較する必要はあるのですか?

あと、好みの問題に近いですが、gotoはできるだけ利用しないほうが良い、というのが
最近のプログラミングの常識となっています。


最後に、一つの文字列がchar[100]を超えるような場合はどうなりますか?
といった問題もあります。

閉鎖

“C言語何でも質問掲示板” へ戻る