質問内容
C言語で,文字列の辞書順ソートをした一番若い者を出力したいのですが,入力をしても何も出力されませんでした。
またwhileのあとにprintf("%s\n",str[0]);としても何も起こりませんでした。
これはもう最初から入力が出来ていないということだと思うのですが,どこを直せばいいのか教えてください。
よろしくお願いいたします。
問題
英単語が1個以上の空白類(空白または改行)で区切られて並んでいるとする。入力の中で辞書順で一番若い単語(通常の英語辞書の見出しとして最も前にくる単語)を出力するプログラムを作れ。ただし,英字はすべて小文字に置き換えて扱え。
入力
標準入力がキーボードから行われるときは、入力の最後に C-d を入力する。
出力
出力は、その英単語だけを1行として書き出せ。
例
入力例1
first
second third
third
出力例1
first
入力例2
one two one
three
four
出力例2
four
書いたコード
C
1#include<stdio.h> 2#include<string.h> 3#include<stdlib.h> 4int scmp(const void *a, const void *b){ 5 return strcmp(*(char**)a, *(char**)b); 6} 7 8int main(void){ 9 char str[1000][1000]; 10 int i=0; 11 while(scanf("%s",str[i])!=EOF) i++; 12 printf("%s\n",str[0]); 13 14 qsort(str,i,sizeof(char*),scmp); 15 printf("%s\n",str[0]); 16 17 return 0; 18}
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/23 06:22
2020/05/23 06:33