gpt4 book ai didi

c - 为什么以下代码给出运行时错误 SIGSEGV

转载 作者:行者123 更新时间:2023-11-30 21:17:59 26 4
gpt4 key购买 nike

我正在编写一个编程问题的解决方案。问题如下:

Your program is to use the brute-force approach in order to find the Answer to Life, the Universe, and Everything. More precisely... rewrite small numbers from input to output. Stop processing input after reading in the number 42. All numbers at input are integers of one or two digits.

我已将我的代码粘贴在下面。当我提交此解决方案时,出现段错误。有人能指出这段代码有什么问题吗?任何帮助将不胜感激。

#include <stdio.h>

int main(void) {
int number = 0;
while (1)
{
int c = getchar();
if (c != EOF)
{
number = number * 10 + c;
}
else
{
//const char value = number;
if (number != 42)
{
printf(number);
printf("\n");
number = 0;
}
else
{
return 0;
}
}
}
}

最佳答案

在你的代码中

printf(number);

无效。您缺少 printf() 所需的格式说明符。你想写

printf("%d", number);

此外,printf()variadic function ,它可以接受一个或多个参数,只要满足该条件,编译就不会失败。然而,这种情况,会导致undefined behaviour因为参数类型不匹配。

关于c - 为什么以下代码给出运行时错误 SIGSEGV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32617403/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com