#include
char* change(char* number) {
int count = 0;
int first = 0;
int last = 0;
while (1) {
if (number[count] == '-') {
first = count;
break;
}
count++;
}
while (1) {
if (number[count+1] == '-') {
last = count + 1;
break;
}
count++;
}
if (first - count == 5) {
number[first + 3] = '*';
number[first + 4] = '*';
number[last + 1] = '*';
number[last + 2] = '*';
}
else if (first - count == 4) {
number[first + 2] = '*';
number[first + 3] = '*';
number[last + 1] = '*';
number[last + 2] = '*';
}
return number;
}
int main() {
char number[100];
scanf("%s", number);
printf("%s", change(number));
}
코딩 목표가 번호를
010-1234-5678
이렇게 입력하면
010-12**-**78 이렇게 출력하는게 목표인데
알고리즘 상 문제는 없거든
근데 왜 11 하고 22가 ** **로 값이 안변하는데 대체 뭐가 잘못한건지 제발좀 알려주십쇼
복사해서 실행해보니까 그냥 고대로만나오는데?
ㅇㅇ 그래서 뭐가 잘못됐는지 궁금함
count를 몇이 될거라고 생각하고 짠거야? first - count if문이랑 else if문 전부 안들어갈걸? - dc App
아닌가ㅎ - dc App
디버그는 해봤니? 디버깅하면서 변수 값 계속 추적해봐. 분명 논리오류가 생길거다 - dc App
디버그 해봤고 논리오류는 없음 값 추적했더니 내가 원하는값 나오고 아마 문법상의 문제가 되는거같은데 내가 원하는값까지 다 뽑아냈는데 **로 안바뀌네
#include <stdio>char* change(char* number) { for (int i = 0; i < 13 xss=removed>= 6 && 10 >= i) number[i] = '*'; } return number;}int main() { char number[100]; scanf("%s", number); printf("%s", change(number));}
새글로 써줘서 올려줄수없음??
새글로써서올렸음
first는 count가 3일때 -니까 3될거고 중간 자리가 4자리면 count가 7일때 8번째 자리가 -. last는 8. 그럼 count와 first가 4차이임. 중간자리가 3자리면 차이가 3이겠지 - dc App
그래도 이상하네 4자리 쳤으면 *로 바뀌긴 해야하는데 다른문제가 있나보군 - dc App
알고리즘 상 문제없는데 010 - 1111 -2222 입력되면 first는 3 last는 8되서 last - first 는 5 나오고 만약 02 - 111 - 2222 입력되면 first 는 2 last는 6되서 fist-last 는 4나옴
본문에 first - count라고 치셨는데요? 시발ㅡㅡ - dc App
last - first겠죠ㅎㅎ - dc App
님 개천재인듯 감사합니다 고치니까 바로 잘되네요
count - first인줄알았네 쉬~불 - dc App