Я изучаю и плохо знаком с языком C. Пока я создавал функцию, которая будет давать мощность двух чисел, используя для l oop, я обнаружил, что использование объявления int перед запуском l oop, а также в l oop изменяет вывод моей программы. Почему это так?
Код с использованием объявления int один раз с правильным выводом;
# include<stdio.h>
int main()
{
int x, y;
int r = 1;
int k;
printf("Enter base number:");
scanf("%d", &x);
printf("Enter power");
scanf("%d", &y);
for (k = 1; k <= y; k++)
{
r = r * x;
}
printf("Power is %d", r);
return 0;
}
Правильный вывод:
Enter base number:7
Enter power3
Power is 343
Неверный код 2:
# include<stdio.h>
int main()
{
int x, y;
int r = 1;
int k;
printf("Enter base number:");
scanf("%d", &x);
printf("Enter power");
scanf("%d", &y);
for (k = 1; k <= y; k++)
{
int r = r * x;
}
printf("Power is %d", r);
return 0;
}
Неправильный вывод:
Enter base number:7
Enter power3
Power is 1
Подскажите, пожалуйста, почему это так.