【问题标题】:How can I use a variable that is declared inside of an for loop when I'm outside of the loop?当我在循环之外时,如何使用在 for 循环中声明的变量?
【发布时间】:2022-07-18 21:13:42
【问题描述】:

我正在学习 C,在这里我需要帮助。我只是在我的课程练习中处理一个小程序,我需要在循环之外使用我的变量(即在for 循环内)。我知道这是一个非常愚蠢的问题,但我需要你的帮助。这是我在 CS50 IDE 中编写的代码:

#include <stdio.h>
#include <cs50.h>
#include <math.h>
#include <ctype.h>
#include <string.h>

int main(void)
{
    // Verifies if the card_number is between 13 and 16 digits
    long card_number = 0;
    for (int i = 0; i < 20; i++)
    {
        card_number = get_long("Insert the card's number: ");
        int reach_zero = 0; 
        int digit_count = 0; 
        do
        {
            reach_zero = (card_number /= 10);
            digit_count++;
        }
        while (reach_zero != 0); 
        if (digit_count >= 13 && digit_count <= 16)
        {
            break; 
        }
    }
    // Prints the card_number 
    printf("%li\n", card_number);
}

我只需要printf card_number。

【问题讨论】:

  • 您已经在打印变量card_number,它被循环while (reach_zero != 0);归零。你有什么问题?
  • 不是在循环内声明变量,而是在外部进行,它在整个 main 函数中可见。虽然,我不确定这是否是你要问的。
  • card_number /= 10 您修改它,使其在循环后始终为0。也许你想要int reach_zero = card_number; do { reach_zero /= 10;...
  • 卡号?将有 20 个。

标签: c


【解决方案1】:

如果我理解了这个问题,那么就写

    card_number = get_long("Insert the card's number: ");
    int reach_zero = card_number; 
    int digit_count = 0; 
    do
    {
        reach_zero /= 10;
        digit_count++;
    }
    while (reach_zero != 0); 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多