c - 从开关内部更新全局变量

标签 c

也许这是一个答案很明显的问题,但我是 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/

相关文章:

c - 如何中断输入

c - 链接头文件: Matlab Engine and OpenGL

c - 此代码如何计算经过的 CPU 周期数?

c - 考虑增量运算符,以下程序的输出是什么

c - 奇怪的 float ?指向结构中 float 的指针

c++ - 这个函数调用 "delay+(1000)"在语法上是否正确?

c - 链接列表的插入排序遇到问题。当我尝试按升序对列表进行排序时,仅打印列表的第一个值

c - 如何在 C 中创建自定义头文件并在程序中使用它

c++ - C/C++ - 预编译 header - 封装、如何以及为什么需要配置?

c - 除以和随后与相同 float 的乘法