Найдите ошибку в сетере. Использована неинициализированная локальная переменная - C (СИ)
Формулировка задачи:
int set_a_coefficent(int your_coefficent)
{
do {
printf("Enter a coefficent(> 0): ");
scanf("%d", &your_coefficent);
if (your_coefficent <= 0) {
printf("your coefficent is so small.Try again.\n");
}
} while (your_coefficent <= 0);
return 1;
}void set_a_coefficent(int your_coefficent);
main()
{
int your_coefficent;
set_a_coefficent(your_coefficent);
printf("%d", your_coefficent);
return 0;
}
void set_a_coefficent(int your_coefficent)
{
do {
printf("Enter a coefficent(> 0): ");
scanf("%d", &your_coefficent);
if (your_coefficent <= 0) {
printf("your coefficent is so small.Try again.\n");
}
} while (your_coefficent <= 0);
}Решение задачи: «Найдите ошибку в сетере. Использована неинициализированная локальная переменная»
textual
Листинг программы
void set_a_coefficent(int *your_coefficent)
{
do {
printf("Enter a coefficent(> 0): ");
scanf("%d", your_coefficent);
if (*your_coefficent <= 0) {
printf("your coefficent is so small.Try again.\n");
}
} while (*your_coefficent <= 0);
}
Объяснение кода листинга программы
- Введен адрес функции
set_a_coefficent, которая принимает указатель на целочисленную переменнуюyour_coefficent. - В функции используется цикл
do-while, который будет выполняться до тех пор, пока значение переменнойyour_coefficentне станет больше нуля. - Внутри цикла выводится сообщение с приглашением ввести коэффициент.
- Используется функция
scanfдля считывания введенного значения и сохранения его в переменнойyour_coefficent. - Если введенное значение меньше или равно нулю, выводится сообщение об ошибке и предложение повторить ввод.
- Цикл продолжается до тех пор, пока значение переменной
your_coefficentне станет больше нуля.