Вот простое меню. Пользователю будет предложено выбрать число от 0 до 3. При выполнении этого, если бы я должен был ввести 1 в приглашении, он выдавал бы «Hello2», что является правильным. Тем не менее, в строке 9, когда предполагается вернуть значение 1 (ввод количества, сохраненный как переменная типа, возвращает 0. Он вернет 0 для любого введенного значения. Может кто-нибудь, пожалуйста, скажите мне, где я иду не так здесь ?. БлагодаряПочему этот случай переключения всегда возвращает 0?
#include <stdio.h>
int type;
int main(int argc)
{
int a = 7;
getInput();
printf("You selected: %d\n", type);
}
int getInput(type)
{
printf("\nPlease select an option:\n1)Create a record\n2)Display records\n
3)Update records\n4)Exit\n\n;");
scanf("%d", &type);
switch(type)
{
case 0:
printf("Hello\n");
break;
case 1:
printf("Hello2\n");
break;
case 2:
printf("Case3\n");
break;
case 3:
printf("Exit\n");
break;
default:
printf("\nERROR! Please select a valid number\n");
}
}
Чтобы избежать этой ошибки, используйте прототипы функций. Ваш код является незаконным на C99 (в котором функции должны быть объявлены как минимум до их использования). –
Не игнорируйте возвращаемое значение 'scanf()'. –
Включите предупреждения своего компилятора и обратите внимание на них. – 5gon12eder