for(i=0;i<7;i++)
{
g=
if(g<g_min)
{
x_min=i;
g_min=g;
}
}
for(i=0;i<7;i++)
{
g=
if((g<g_min2)&&(g_min!=g))
{
x_min2 = i;
g_min2=g;
}
}
}
g_min=g_min2=1000000 이고 g값은 어떤 식에 의해 계산되는건데 이렇게 하면 g값이 제일 작을때와 두번째로 작을때의 i값을 구할수 있는데
이걸 for문 하나로 짤수있냐???
for(i=0;i<7;i++)
{
g=
if(g<g_min)
{
x_min=i;
g_min=g;
}
}
for(i=0;i<7;i++)
{
g=
if((g<g_min2)&&(g_min!=g))
{
x_min2 = i;
g_min2=g;
}
}
}
g_min=g_min2=1000000 이고 g값은 어떤 식에 의해 계산되는건데 이렇게 하면 g값이 제일 작을때와 두번째로 작을때의 i값을 구할수 있는데
이걸 for문 하나로 짤수있냐???
코드를 개같이짜서 이해할수가없네
주석좀달아라 너가쓴코드의목적이 뭔지 파악하기쉽게
int min1 = 1<<31;int min2 = 1<<31;for(int 0=2; i<len; i++) { if( arr[i] < min1 ) { min2 = min1; min1 = arr[i]; } else if( arr[i] < min2 ) { min2 = arr[i]; }}
이렇게하면 될것같아요. 참고로 1<<31이 int 타입중에서 가장 큰 수임... 아 생각해보니까 아니구나. 1<<31 부분을 ~0으로 바꾸세요
아 생각해보니까 그것도 아니구나... ~(1<<31) 이러면 되겠네요
님 근데 이거 원래 알고있었음? 원래 배열에 {1, 1, 1, 2, 3, 3, 3, 4, 5, 6, 7, 8}처럼 최솟값 1이 2개 있을 경우, 님 코드에서는 min1=1, min2=2가 됨. 이게 님이 원하는 결과임?
아니면 min1=min2=1이 님이 원하는 결과임? 어차피 배열에는 서로 다른 원소가 들어가기로 예정되어 잇으니 상관없나?
그리고 코드에 보니까 최솟값의 인덱스값을 저장하는데, 최솟값이 두개 이상일 경우에 그건 가장 왼쪽에 있는 원소의 인덱스값이죠. 인식하고 짜고 있음? 다 아는거 괜히 말하는건가
木형 고마워 근데 for(int 0=2; i<len; i++) 이부분 이해 안되는데 설명좀 그리고 배열에는 서로 다른 값이 6개 들어가서 상관없엉
for(int i=2; i<len; i++) 오타가 났음 0이 아니라 i고... len은 배열의 길이(length)를 나타내는 변수임.