c언어 배열 5의 배수를 지웠는데 실행을 하면 마지막 숫자 12가 나오지 않는다
조회수 265회
void main()
{
int D[10], i, j, k, N = 10;
srand(0);
for (i = 0; i < 10; i++) D[i] = rand() % 100;// 난수 설정
printf("Before : ");
for (i = 0; i < 10; i++) printf("%d ", D[i]); puts("");
for (i = 0; i < N - 1; i++)// i가 8이 될때 까지 반복
for (j = i + 1; j < N; j++)// i=0 j = 1부터 n = 10 9반복
if (D[i] == D[j])
{
remove_element(D, j, &N);// 중복된 수를 제거 D[j] 안에 있는수를 없애기
j--;
}
remove_5(D, &N);
printf("After : ");
for (i = 0; i < N; i++) printf("%d ", D[i]);
puts("");
}
//void remove_element(int* d, int i, int* n)// d는 배열 i = j n = &N = 10 N의 총량을 없애기
{
for (int j = 0; j < *n; j++)
{
d[i] = d[i + 1];// 틀린것을 앞에있는 숫자로 바꾸기
(*n)--;
i++;
}
}
void remove_5(int* d, int* n)
{
for (int i = 0; i < *n; i++)// 5의 배수 또는 5가 들어간 숫자 없애기
{
if (d[i] % 5 == 0 || d[i] % 10 == 5)
{
d[i] = d[i + 1];
(*n)--;
}
}
}
배열의 중복 숫자와 5가 들어가는 수 5의 배수를 지웠는데 실행을 하면 마지막 숫자 12가 나오지 않는 이유가 궁금합니다
-
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
댓글 입력