gpt4 book ai didi

c - C编程中的"Program received signal SIGSEGV, Segmentation fault"

转载 作者:太空宇宙 更新时间:2023-11-04 08:46:50 33 4
gpt4 key购买 nike

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

int main(void)
{
int n ,k, i, j, l;
double c, s, p, q;
printf("Sa se dea valoarea n pentru combinari: ");
if(scanf("%d",n)!=1)
{
printf("Date eronate");
exit(1);
}

printf("Sa se introduca k pentru a face numarul de combinari: ");
if(scanf("%d",k)!=1||k>n)
{
printf("Date eronate");
exit(1);
}

s=1;
p=1;
q=1;

for(i=1;i<=n;i++)
s*=i;

for(j=1;j<=k;j++)
p*=j;

for(l=1;l<=(n-k);l++)
q*=n-k;
c=s/(p*q);
printf("%g",c);

getch();

return 0;
}

这是我的程序,这个程序必须计算从 n 到 k 的组合,并给我这个错误。我能做什么?

最佳答案

if(scanf("%d",n)!=1)

应该是

if(scanf("%d",&n)!=1)
// ^

这同样适用于后面设置k的代码。

您需要传递您希望 scanf 写入的任何变量的地址。

正如 PaulR 所指出的,如果您启用警告(-Wall 用于 gcc,/W4 用于 MSVC),您的编译器可能会警告您此类错误。为您的程序执行此操作会报告

warning: format '%d' expects argument of type 'int *', but argument 2 has type 'int' [-Wformat]

...这会帮助您自己诊断问题。

关于c - C编程中的"Program received signal SIGSEGV, Segmentation fault",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21387059/

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