也许这是一个答案很明显的问题,但我是 C 语言的新手,我花了几个小时试图自己解决这个问题并在这个网站上搜索。
我正在构建一个简单的程序,它以一个包含数字(在本例中为 1234)的变量开头,程序中的一个选项允许用户更改该变量(值)。
因此,要求用户输入要保存的 value
的新号码。然后再次询问相同的数字。如果输入的数字相同,则应更新 value
以保存这些新数字(同时存储在 newValue
中和 newValueCheck
)。
我试图弄清楚如何更新 value
,方法是将存储在新变量中的数字分配给它,但无论我尝试什么,当菜单循环时我向程序询问 value
中的数字,它始终卡在 1234。
再次抱歉,如果这很明显,但它让我发疯。
int x = 1;
int value = 1234;
int enteredValue = 0;
int newValue = 0;
int newValueCheck = 0;
while (x != 0) {
printf("1. Example");
printf("2. Change value");
scanf("%d", &atm);
switch (x) {
Case 1:
//Code here
break;
case 2:
printf("Option 2 selected");
printf("Please enter your new value:");
scanf("%d", &newValue);
printf("Please re-enter your new value:");
scanf("%d", &newValueCheck);
if (newValue == newValueCheck) {
printf("You have successfully changed your value.");
//Code to update 'value' goes here?
}
else {
printf("The values provided do not match. Please try again.");
}
break;
最佳答案
您正在处理“范围”问题。由于您在循环中声明了变量,因此它仅在该迭代期间“存在”。在循环之前声明它,你应该被设置
关于c - 从开关内部更新全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40569440/