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;
}
不知道为什么,编译没有问题,但是一运行就有错误,显示停止运行

c

5个回答

输入要加取地址符号图片说明

l1323060
l1323060 谢谢,刚开始写,给忘了
4 年多之前 回复

木事,助人为乐嘛(⊙o⊙)

输入语句少了&,语法错误

scanf ("%f", r);
这个语句在调用scanf函数时没有传递正确的参数。
在这里你没有家取地址符,这样可能在某些情况下是正确的,但对float与int类型的变量来说,就是错误的。
这里的错误之处其实并不是你忘了加&,这里的错误是scanf将r的值——0作为地址来消引用——即将输入的值存储到 首地址 为0 处的连续4个字节(一般)内存空间中。
而地址的编码只能是无符号数,那么这里就会发生访问失败,即scanf无法将获得的值存储到以0为起始地址的内存空间中。

你scanf里的变量没有写&取地址符

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐