gpt4 book ai didi

c - 在输出平均数时,程序呈现段错误 11

转载 作者:行者123 更新时间:2023-11-30 19:03:46 25 4
gpt4 key购买 nike

这里有两组代码看起来彼此没有什么不同,但其中一组生成警告和段错误11。

    //the program which turns out alright
#include<stdio.h>
int main()
{int a,b,c,d;float f;
scanf("%d %d %d",&a,&b,&c);
d=a+b+c;
f=(a+b+c)*1.0/3.0;
printf("%d %.2f\n",d,f);
return 0;
}

//the program that comes along small issues
//format specifies type 'int *' but the argument has type 'int' [-Wformat]
//After inputting 3 integers, in mac terminal console, it showed: segmentation fault:11
#include<stdio.h>
int main(void)
{
int a,b,c = 0;
float average = 0.0f;
printf("Please enter three integers you wish to calculate their average:");
scanf("%d %d %d", a,b,c); //从input把数据放到arithmatic counter里面

average = (float)(a+b+c)/3.0f;

printf("\nThe average of the three numbers is:%.2f", average);
return 0;
}

最佳答案

Here are two sets of codes seem no different to each other,

您需要仔细查看。

参见scanf()语句:

  • scanf("%d %d %d",&a,&b,&c); 正确
  • scanf("%d %d %d",a,b,c); 是错误的。您的编译器已经就此警告您。

scanf() 期望针对 %d 提供的参数是指向整数的指针 - 为它们提供 int(基本上,任何其他与预期类型不兼容)将调用 undefined behavior 。段错误是副作用之一。

关于c - 在输出平均数时,程序呈现段错误 11,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53458040/

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