C言語で問題を解いていますが、なかなかこの問題が解けません。
問題はこのようなものです。
n
c_1
c_2
...
c_n という用に行数n、文字列c_1~c_nが与えられます。
その文字列が初めて出てくるのであればyesを、既出であればnoと出力したいです。
行数を文字列を受け取るところ前はいつも通り記述できました。
このような感じです、
#include <stdio.h>
int main(void){
char buf[1000];
int n;
char str[1000];
fgets(buf, sizeof(buf), stdin);
sscanf(buf, "%d\n", &n);
for(int i = 0; i < n; i++) {
fgets(buf, sizeof(buf), stdin);
sscanf(buf, "%s\n", &str);
printf("%s\n", str);
}
ところが肝心の「初めてなら」「一度出てきたら」という条件から作れません。間違えている事を承知で配列にして文字列の比較なども考えましたが…↓
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++) {
if(str[i] != str[j]) {
printf("YES\n");
}
案の定うまくいきませんでした。
初めての質問で不手際かもしれませんが、ご教授頂けますと幸いです。
回答2件
あなたの回答
tips
プレビュー