問題は~~~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:利用は初めてなんですが どうしでもエラー表示がうまくできません
最初はmaxには何が入っていますか?
問題文で気になることが、
>最もおおきな文字列を表示する
最も大きな文字列とはどのような文字列ですか?
strcmpを使っているということは辞書順を想定してあると思いますが。
>*未入力の比較はstrcmpを使用し
未入力の比較とあるのですが、未入力と比較する必要はあるのですか?
あと、好みの問題に近いですが、gotoはできるだけ利用しないほうが良い、というのが
最近のプログラミングの常識となっています。
最後に、一つの文字列がchar[100]を超えるような場合はどうなりますか?
といった問題もあります。
問題文で気になることが、
>最もおおきな文字列を表示する
最も大きな文字列とはどのような文字列ですか?
strcmpを使っているということは辞書順を想定してあると思いますが。
>*未入力の比較はstrcmpを使用し
未入力の比較とあるのですが、未入力と比較する必要はあるのですか?
あと、好みの問題に近いですが、gotoはできるだけ利用しないほうが良い、というのが
最近のプログラミングの常識となっています。
最後に、一つの文字列がchar[100]を超えるような場合はどうなりますか?
といった問題もあります。