c语言-c入门问题,请求各位大神帮助

问题描述

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

c语言-c入门问题,请求各位大神帮助的相关文章

c语言-两道C语言编程题:求教各位大神

问题描述 两道C语言编程题:求教各位大神 两元一瓶啤酒,两个啤酒瓶换一瓶啤酒,四个啤酒瓶盖换一瓶啤酒,输入的金额可以买几瓶. 输入一串字符串,写两个函数,第一个函数使输入的字符串全都后移一位,第二个函数将字符串中的字母大写换小写,小写换大写?. 拜托各位了 谢谢~ 解决方案 第一个问题描述不清,不知道是不是可以借啤酒瓶和瓶盖,我的程序按照不可以编写: #include <stdio.h>int foo(int money){ int c = money / 2; int c1 = 0; int

c语言-C语言的一个程序,求大神

问题描述 C语言的一个程序,求大神 三.实验内容 1.实验题目:手动输入10个0~100之内的整数,按从小到大排列输出.: (1)要求 排序算法: 使数组从小到大排序的规则如下: ⑴ 设数组为a[0],a[1],-,a[n-1],构造i循环从0,1,-,n-2变化,构造j循环从i+1,i+2,-,n-1变化,即j>i. ⑵ 对于任何一个a[i],如果a[i]>a[j],表面前面有一个元素a[i]比它后面的元素a[j]大,a[i]应该在后面,a[j]应该在前面,交换a[i]与a[j]. ⑶ 对于

基础-请问一个C语言奇怪的问题,求大神

问题描述 请问一个C语言奇怪的问题,求大神 //加了所有需要的头文件intmain(int argc char **argv){ struct event timeout; struct timeval tv; struct event_base *base; int flags; //printf(""pathvar=%s""getenv(""PATH"")); 注释1#ifdef WIN32 WORD wVersionRe

fanbao-c语言里面的问题,求大神解决

问题描述 c语言里面的问题,求大神解决 请问一下,如果用c编写了一个闹钟,那么怎么在电脑上运行这个程序时出现的是一个时钟的样子? 解决方案 用MFC或者WIN32来做 解决方案二: 可以去学习下VC的界面编程

strcpy-c语言比较细致的问题.求大神帮我解答.

问题描述 c语言比较细致的问题.求大神帮我解答. #include#includeint main(){ int sum=0; char array[20][200]={""""}; int m=0n; float k=0; int k1=0i; scanf(""%d""&n); for(i=0;i { scanf(""%d""&sum); scanf("&qu

opengl-OpenGL es 入门问题,各位大神指教下

问题描述 OpenGL es 入门问题,各位大神指教下 小弟入行三年,一直做的通讯交互类应用,突然对游戏感兴趣,现在自学gl es还没入门就碰到了问题,希望各位大神解答下. 从这张图上看各种定点数据的路线应该是定点着色器-->图元装配-->光栅化-->片段着色器,但不管是小弟从网上查的资料还是自己买的书籍都说顶点着色器的输出直接作为片段着色器的输入数据,这个小弟无法理解,望各位大神指教. 解决方案 Android OpenGL ES 入门转 OpenGL ES入门 解决方案二: http

不懂c语言基础的问题,求大神解答。

问题描述 不懂c语言基础的问题,求大神解答. for(j=0;j<=9;j++){ scanf(""%d""&i); a[j]=i;} 这样写为什么不行? 原代码:#includeint main(){ int a[10]ijz; printf(""请输入十个数值:""); for(j=0;j<=9;j++) scanf(""%d""&i); a[j]=i;

条件语句-c语言,打孔问题,求大神指导。

问题描述 c语言,打孔问题,求大神指导. 题目,s得到一个数,他想知道这个数每一位上的数字的孔数之和,其中,1,2,3,5,7这几个数字是没有孔的,0,4,6,9都只有一个孔,而8有两个孔. 解决方案 不知道是不是这个意思 #include <stdio.h> #include <stdlib.h> #include <string.h> int holeNum[10] = { 1, 0, 0, 0, 1, 0, 1, 7, 2, 1 } ; int getHoleNu

c-C语言小数点舍入问题,求大神!!

问题描述 C语言小数点舍入问题,求大神!! 若有定义:float n:int m:则以下能实现将 n 中的数值保留小数点后两位,第三位进行四舍五入的表达式 是( B ). A)n=(n*100+0.5)/100.0 B)m=n*100+0.5,n=m/100.0 C)n=n*100+0.5/100.0 D)n=(n/100+0.5)*100.0 怎么理解怎么选的?? 解决方案 你首先要知道:float/int==float. float n要保留两位小数,就意味着要先把浮点向前移两位,即 int