问题描述
- c入门问题,请求各位大神帮助
-
#include
int main()
{
float a, r = 0;
printf("please enter the radius of a circle:");
scanf ("%f", r);
a = 2 * 3.1416 * r;
printf("The radius of the circle is:");
printf("%f", a);
return 0;
}
不知道为什么,编译没有问题,但是一运行就有错误,显示停止运行
解决方案
解决方案二:
木事,助人为乐嘛(⊙o⊙)
解决方案三:
输入语句少了&,语法错误
解决方案四:
scanf ("%f", r);
这个语句在调用scanf函数时没有传递正确的参数。
在这里你没有家取地址符,这样可能在某些情况下是正确的,但对float与int类型的变量来说,就是错误的。
这里的错误之处其实并不是你忘了加&,这里的错误是scanf将r的值——0作为地址来消引用——即将输入的值存储到 首地址 为0 处的连续4个字节(一般)内存空间中。
而地址的编码只能是无符号数,那么这里就会发生访问失败,即scanf无法将获得的值存储到以0为起始地址的内存空间中。
解决方案五:
你scanf里的变量没有写&取地址符
时间: 2024-10-18 10:50:05