这是一个非常简单的代码,当我运行它时,它允许我输入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;
}
答案 0 :(得分:1)
这是一个使用双参数的版本:
#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
:该函数需要知道变量的地址,而不是其值。