이 이 0으로 초기화 된 직후 0
으로 설정된 이유를 이해할 수 없습니다.변수 i가 0으로 설정된 이유를 이해할 수 없습니까?
reinitialized
value of k
에서 i
으로 프로그램이 정상적으로 작동합니다. 그러나 i
이 0
이되는 이유를 알 수 없습니다. 그리고 memset()
이 배열을 지우거나 배열을 0
으로 설정하는 이유는 무엇입니까?
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
int main()
{
long long int i = 123456789;
long long int j = 987654321;
long long int cnt = 0;
int array[9] ;
int xyz, k, x, rem, se;
xyz = 0;
// printf("I = %llf", i);
for (i; (i < j) && (cnt < 100000); i++)
{
k = i;
x = 0;
for (se = 0; se <= 9; se++)
{
array[se] = 0;
}
/*************************************************/
i = k; // Here i becomes zero. Why?
/************************************************/
//memset(array, 0, 9);
while(k != 0)
{
rem = k % 10;
for(se = 0; se <= 9; se++)
{
if(rem == array[se])
{
xyz = 1;
break;
}
}
if(rem == array[se])
{
xyz = 1;
break;
}
array[x++] = rem;
k = k/10;
}
if (xyz != 1)
{
cnt++;
// printf("Cnt = %d ", cnt);
// printf("The value i is = %lld\n", i);
// Sleep(10);
}
xyz = 0;
// printf("The value i is = %lld\n", i);
// printf("Cnt = %d \n", cnt);
fflush(stdin);
}
printf("The value i is = %lld \n", i-1);
return 0;
}
'stdin'플러시는 정의되지 않은 동작입니다. –
'array'는 9 개의 내부 위치를 가지고 있으며 10 : 0..9 (포함)에 액세스하고 있습니다. 그렇다면, 당신은'array [x]'에 접근하고,'x'는 바인딩되지 않습니다 ... –