8958번 - OX퀴즈
처음에 n1 입력시 첫번째 문자열 입력을 건너뛰고 sum 의 0값이 출력됩니다..
#include<stdio.h>
#include<string.h>
int main(){
int n1;
char str[100];
int len=0;
int sum=0;
int arr[100];
scanf("%d",&n1);
for(int b=1;b<=n1;b++){
gets(str);
len = strlen(str);
for(int i=0;i<len;i++){
if(str[i]=='O') arr[i] = i;
else arr[i] = -1;
}
if(arr[i]>=0){
sum += 1;
for(int j=1;;j++){
if(arr[i-j]==arr[i-j+1]-1)
sum+=1;
else break;
printf("%d\n",sum);
sum=0;
return 0;
gets를 scanf("%s", str) 로 하면 될 것 같습니다.
gets 는 한 라인을 읽는데, 이전에서 n1에 해당하는 숫자까지만 읽었기 때문에 n1 다음에 있는 '₩n'을 읽어온걸로 보입니다
댓글을 작성하려면 로그인해야 합니다.
kimsung601 4년 전
처음에 n1 입력시 첫번째 문자열 입력을 건너뛰고 sum 의 0값이 출력됩니다..
#include<stdio.h>
#include<string.h>
int main(){
int n1;
char str[100];
int len=0;
int sum=0;
int arr[100];
scanf("%d",&n1);
for(int b=1;b<=n1;b++){
gets(str);
len = strlen(str);
for(int i=0;i<len;i++){
if(str[i]=='O') arr[i] = i;
else arr[i] = -1;
}
for(int i=0;i<len;i++){
if(arr[i]>=0){
sum += 1;
for(int j=1;;j++){
if(arr[i-j]==arr[i-j+1]-1)
sum+=1;
else break;
}
}
}
printf("%d\n",sum);
sum=0;
}
return 0;
}