创建函数时尝试在 C 中打印

Attempting to print in C when creating functions

我是运行这段代码,打印命令实际上并没有产生任何打印结果。有人可以建议吗?最后我确实有一些评论将作为我的其他两个功能的序言,但现在,我只是想知道为什么即使我的代码没有显示任何错误,打印也没有出现。

谢谢!

# include <cs50.h>
# include <stdio.h>

int length(long number);
int start_chars(long number);

//Main
int main (void)
{
    long number = get_long("Number: ");
    int length(long number);
    int start_chars(long number);
}

//Number length count
int length(long number)
{
    int len = 0;
    do
    {
        len ++;
        number /= 10;
    }
    while (number > 0);
    return len;
    printf("Length: %d", len);
}

//Number first characters
int start_chars(long number)
{
    long charsnum = number;
    while (charsnum >= 100)
    {
        charsnum /= 10;
    }
    return charsnum;
    printf("First 2 digits: %ld", charsnum);
}

//Length & character count congruity

//Checksum

函数在 return 语句后立即终止。

您的打印语句在这些函数中的 return 语句之后。这就是为什么当您 运行 代码时它们不会出现。

因此,将它们放在 return 语句之前,您应该能够在输出中看到它们。此外,对于一些干净的输出,请在 printf.

中使用 \n

然后,在您的 main 函数中,查看这些语句:

int length(long number);
int start_chars(long number);

这些是函数声明,而不是 functions 在 C 中的调用方式。将 return 值存储在变量中。由于您只想看到那些 printf 语句得到执行,因此将其更改为:

length(number);
start_chars(number);

当您在函数中使用 return 时,它们将立即结束。

所以你的 printf 行不会被执行。

printf 应该在 return 之前。

与上面的答案一样,您在 return 语句之后打印的代码中出错。

这是正确的代码:

# include <cs50.h>
# include <stdio.h>

int length(long number);
int start_chars(long number);

//Main
int main (void)
{
    long number = get_long("Number: ");
    int length(long number);
    int start_chars(long number);
}

//Number length count
int length(long number)
{
    int len = 0;
    do
    {
        len ++;
        number /= 10;
    }
    while (number > 0);
    printf("Length: %d", len);
    return len;
}

//Number first characters
int start_chars(long number)
{
    long charsnum = number;
    while (charsnum >= 100)
    {
        charsnum /= 10;
    }
    printf("First 2 digits: %ld", charsnum);
    return charsnum;
}

//Length & character count congruity

//Checksum