로또번호 질문
156
작성한 질문수 24
강의영상 21:47분쯤에 이미 찾은 값이라고해서 number[i] == randvalue랑 비교하는 조건식이 있는데요 현재 number배열에는 아무것도 들어가있지 않은 상태아닌가요? 코드를 쭉 봤는데 랜덤수를 넣어주는 곳이 없어서 도대체 무엇이랑 비교를 하는건가요??다른 부분은 다 이해되는데 지금 로또번호가 이해가 안됩니다.. ㅠ
그리고 하나더 int randomvalue = 1 + (rand() % 45); 를해서
이 randomvalue를 number[i]에 for문으로 6번넣어서 출력을 할려했는데(중복 생각안하고)
근데 출력이 안됩니다 이게 계속 그래서 뭐가 문젠지 몰라서 제가 변수를 지우고 그냥 number[i]에
number[i] = 1 + (rand() % 45);를 직접적으로 대입해주니 출력이 잘 됐습니다 혹시 그 이유를 여쭤봐도 될까요??
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
님의 질문에 대해 답변드리겠습니다.
첫 번째 질문에 대해, number[i] == randvalue 조건식은 배열 number 내에 이미 존재하는 값과 새로 생성된 랜덤 값 randvalue가 동일한지 비교하는 로직입니다. 현재 number 배열이 비어 있다면, 이 조건식은 단순히 초기 상태를 확인하는 것일 수 있습니다. 그러나, 보통 이러한 로직은 랜덤한 값이 배열에 이미 존재하는지 중복 체크를 위해 사용됩니다. 질문에서 언급하신 코드 상황만으로는 랜덤 수를 number 배열에 어떻게 추가하는지 구체적인 부분이 나와있지 않아, 랜덤 수를 추가하는 과정이 빠진 것 같습니다. 반복문 내에서 랜덤한 값을 생성하고 배열에 추가하는 로직이 필요할 것으로 보입니다.
두 번째 질문의 경우, int randomvalue = 1 + (rand() % 45);로 랜덤 값을 생성한 후 이 값을 number[i]에 할당하는 과정에서 문제가 발생한 것으로 보입니다. 하나의 randomvalue를 생성하고 이를 여러 번 number[i]에 할당하려 했다면, for 문을 사용하여 배열의 각 요소에 같은 값이 할당되었을 겁니다. 이로 인해 중복된 값이 생성되어 출력이 예상과 다를 수 있습니다. 반면 number[i] = 1 + (rand() % 45);를 사용하여 배열의 각 요소에 직접 랜덤 값을 할당하게 되면, 반복문의 각 단계에서 새로운 랜덤 값이 생성되어 number 배열의 각 요소에 다른 값이 할당됩니다. 이 차이로 인해 후자의 방식이 원하시는 결과를 얻는 데 성공한 것으로 보입니다.
혹시라도 더 궁금한 점이 있으시다면 추가적인 질문을 주시면 감사하겠습니다.
소스코드와 관련하여 질문드립니다
0
70
1
map 컨테이너의 emplace 함수에 대해
0
112
2
시작이 안되네요...!
0
96
2
EAX 명령어 실행 시 RAX의 상위 32비트가 초기화 되는 이유
0
125
1
리틀 엔디안 장점 질문합니다.
0
131
1
메모리 창에 주소를 넣었는데 영어 꺠짐
0
124
1
타입변환#2 build시 knight 인접 stack이 침범당했다는 error가 발생합니다.
0
94
2
map #1 8분 58초 맵은 레드블랙트리로 이루어진 것 같습니다.
1
138
2
hello world 부터 오류 ㅠㅜ
0
188
1
지역변수가 스택? 레지스터
0
127
2
마지막 문제 질문드립니다.
0
163
2
메모리창이 비활성화됩니다.
0
98
1
이중포인터 강좌 부분 질문있습니다.
0
145
1
2를 더하는 이유
0
133
1
메모리 주소 창 엔디안 질문 드립니다. 인프런 봇 답변도 괜찮습니다
1
110
1
해당 코드는 왜 오류가 날까요?
0
154
1
마지막 문제 질문 있습니다.
0
118
1
강의 마지막부분에 질문이 있습니다.
0
190
2
Field초기화
0
140
1
virtual과 override 차이
0
314
2
3:30 참조자 리턴
0
167
1
map 찾기
0
158
1
프로그램 질문드려요
0
259
1
캐스팅 질문
0
138
1





