로또당첨번호 코드 질문드려요
나미
6개 로또번호 뽑는 코드인데 중복은 될수없어요전체적으로 이해가 잘안되네요특히 빨간부분은 왜 저걸쓰는지 왜 저런지 잘모르겠습니다n+1을 왜하는지... while조건문에 왜 저런식을 쓰는지...혹시 아시는분 계신가요.
----------------------------#include stdio.h#include stdlib.h#include time.h# define MAX 45int getnumber(int n);
void main(){ int n1,n2,n3,n4,n5,n6; srand(time(NULL));
n1=getnumber(MAX); do{ n2=getnumber(MAX); }while (n2==n1); do{ n3=getnumber(MAX); }while (n3==n1 ll n3==n2); do{ n4=getnumber(MAX); }while (n4==n1 ll n4==n2 ll n4==n3); do{ n5=getnumber(MAX); }while (n5==n1 ll n5==n2 ll n5==n3 ll n5==n4); do{ n6=getnumber(MAX); }while (n6==n1 ll n6==n2 lln6==n3 ll n6==n4 ll n6==n5);printf(로또당첨번호는 %d,%d,%d,%d,%d,%d입니다\n,n1,n2,n3,n4,n5,n6);return 0;}int getnumber(int n){ return rand() % n+1;}
-
목련
n+1을 하는 이유는 0 ~ 44부터가 아닌 1 ~ 45 사이의 값을 얻기 위함이며,
do while문은 우선 한번 실행시킨 다음 while(조건)문의 조건을 검사하여 참이라면 한번 더 루프시키는 것이니 n1과 n2가 중복되지 않게 해주는 역할을 하는거지요.