При написании программы я заполняю записи массива символов цифрами. После этого длина, рассчитанная для массива без нуля, верна, но для массива, начинающегося с нуля, равна нулю!Неопределенное поведение программы
Почему этот результат подходит? Я не могу интерпретировать свою ошибку !?
int main()
{
int number_of_terms,no,j,i;
char arr[100];
char c;
scanf("%d",&number_of_terms);
for(i=0;i<number_of_terms;i++)
{
j=0;
while(c!='\n')
{
scanf("%d",&arr[j]);
if(c=getchar()=='\n')
break;
j++;
}
printf("Length is:%d\n",strlen(arr));
}
return 0;
}
for eg if i input my array elements as 4 5
lenght is 2
and if my array elements as 0 5
length is 0..
И 'c = getchar() == '\ n'' равно' c = (getchar() == '\ n') ', который вы, вероятно, не хотите. – Lennart
независимо от того, что вы заявляете, пожалуйста, дайте ему стимулятор. не оставляйте его плавающим. может произойти сбой ввода, который оставит ваши переменные в старом состоянии (которое не определено для вашего кода). –