gpt4 book ai didi

c - 为什么我的代码中出现段错误?

转载 作者:行者123 更新时间:2023-11-30 20:19:54 26 4
gpt4 key购买 nike

这是一个非常简单的代码,当我运行它时,它让我输入 int,但是当我输入它时,程序崩溃了。我尝试在 scanf 之后放置一个 printf 来检查程序是否正确读取 int ,但似乎没有。我无法输出我输入的整数。

#include <stdio.h>
#include <math.h>

void coolfunction(int x, int *y)
{
*y = exp(x);
}

int main()
{
int n;
double result = 0;

printf("Enter an integer: ");
scanf("%d", n);

coolfunction(n, &result);

printf("\n e^%d = %lf \n", n, result);
return 0;
}

最佳答案

这是使用双参数的版本:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

void coolfunction(int x, double *y)
{
*y = exp(x);
}

int main()
{
int n = 0, scanned = 0;
double result = 0;

printf("Enter an integer: ");
scanned = scanf("%d", &n);
if (scanned < 1) {
fprintf(stderr, "value entered not a valid integer\n");
exit(EXIT_FAILURE);
}
coolfunction(n, &result);
printf("\n e^%d = %g \n", n, result);
return 0;
}

您还错过了 scanf 调用中的 &:该函数需要知道变量的地址,而不是其值。

关于c - 为什么我的代码中出现段错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48074732/

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