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