常见的c语言变量名 (常见的C语言scanf函数使用错误及如何避免)

常见的C语言scanf函数使用错误及如何避免

在C语言编程中,变量名是指用来标识不同数据类型的标识符。一个好的变量名可以让代码更易读,提高代码的可维护性。有些程序员在命名变量时常常犯一些常见的错误,下面将对这些错误进行分析并提出相应的改进方法。

1. 使用无意义的单词或缩写作为变量名

有些程序员倾向于使用无意义的单词或缩写作为变量名,这样会导致代码难以理解。例如,使用"ctr"代表"counter","i"代表"index"等。这种命名方式会增加代码的阅读难度,尤其是对初学者来说。更好的做法是使用有意义的、描述变量用途的命名。

2. 使用过于简单的变量名

有些程序员可能会使用过于简单的变量名,例如"a"、"b"等。这样的命名方式不仅难以理解,还容易导致代码中变量的混淆。一个好的变量名应该能够准确地描述变量的用途,让其他人能够清楚地理解代码。例如,使用"totalCount"代替"a"来表示总数。

3. 使用与数据类型不符合的变量名

有些程序员可能会使用与数据类型不符合的变量名,例如将整型变量命名为"str"。这样的命名方式会给其他人造成困惑。应该遵循良好的编程规范,使用与数据类型相符合的变量名,例如使用"num"代表一个整型变量。

4. 使用保留关键字作为变量名

在C语言中,有一些保留关键字是用来表示特殊含义的,例如"int"、"float"等。有些程序员可能会不小心将这些关键字作为变量名使用,这会导致编译错误。为了避免这种问题,应该避免使用保留关键字作为变量名。

对于上述问题,我们可以提出一些改进的方法:

1. 使用有意义的变量名

为了让代码更易读,变量名应该能够准确地描述变量的用途。例如,使用"counter"代替"ctr",使用"index"代替"i"等。这样可以让其他人更容易理解代码,并提高代码的可维护性。

2. 使用规范的命名风格

在C语言中,有一些命名风格是被广泛接受和使用的,例如驼峰命名法(camel case)和下划线命名法(snake case)。选择一种合适的命名风格,并遵循该规范来命名变量,可以让代码更具可读性,并使其他人更容易理解代码。

3. 避免使用保留关键字作为变量名

在编写代码时,应该避免使用保留关键字作为变量名,以免造成编译错误。在C语言中,保留关键字是有特殊含义的,使用它们作为变量名会导致程序的语义错误。

变量名在C语言编程中起着非常重要的作用。一个好的变量名能够提高代码的可读性和可维护性。为了编写清晰、易理解的代码,我们应该避免常见的变量名错误,并采用合适的命名方式。


C语言中常见错误

1.书写标识符时,忽略了大小写字母的区别。main(){int a=5;printf(%d,A);}编译程序把a和A认为是两个不同的变量名,而显示出错信息。C认为大写字母和小写字母是两个不同的字符。习惯上,符号常量名用大写,变量名用小写表示,以增加可读性。2.忽略了变量的类型,进行了不合法的运算。main(){float a,b;printf(%d,a%b);}%是求余运算,得到a/b的整余数。整型变量a和b可以进行求余运算,而实型变量则不允许进行“求余”运算。3.将字符常量与字符串常量混淆。char c;c=a;在这里就混淆了字符常量与字符串常量,字符常量是由一对单引号括起来的单个字符,字符串常量是一对双引号括起来的字符序列。C规定以“\”作字符串结束标志,它是由系统自动加上的,所以字符串“a”实际上包含两个字符:‘a和‘\,而把它赋给一个字符变量是不行的。4.忽略了“=”与“==”的区别。在许多高级语言中,用“=”符号作为关系运算符“等于”。如在BASIC程序中可以写if (a=3) then …但C语言中,“=”是赋值运算符,“==”是关系运算符。如:if (a==3) a=b;前者是进行比较,a是否和3相等,后者表示如果a和3相等,把b值赋给a。由于习惯问题,初学者往往会犯这样的错误。5.忘记加分号。分号是C语句中不可缺少的一部分,语句末尾必须有分号。a=1b=2编译时,编译程序在“a=1”后面没发现分号,就把下一行“b=2”也作为上一行语句的一部分,这就会出现语法错误。改错时,有时在被指出有错的一行中未发现错误,就需要看一下上一行是否漏掉了分号。{ z=x+y;t=z/100;printf(%f,t);}对于复合语句来说,最后一个语句中最后的分号不能忽略不写(这是和PASCAL不同的)。6.多加分号。对于一个复合语句,如:{ z=x+y;t=z/100;printf(%f,t);};复合语句的花括号后不应再加分号,否则将会画蛇添足。又如:if (a%3==0);I++;本是如果3整除a,则I加1。但由于if (a%3==0)后多加了分号,则if语句到此结束,程序将执行I++语句,不论3是否整除a,I都将自动加1。再如:for (I=0;I<5;I++);{scanf(%d,&x);printf(%d,x);}本意是先后输入5个数,每输入一个数后再将它输出。由于for()后多加了一个分号,使循环体变为空语句,此时只能输入一个数并输出它。7.输入变量时忘记加地址运算符“&”。int a,b;scanf(%d%d,a,b);这是不合法的。Scanf函数的作用是:按照a、b在内存的地址将a、b的值存进去。“&a”指a在内存中的地址。8.输入数据的方式与要求不符。①scanf(%d%d,&a,&b);输入时,不能用逗号作两个数据间的分隔符,如下面输入不合法:3,4 输入数据时,在两个数据之间以一个或多个空格间隔,也可用回车键,跳格键tab。②scanf(%d,%d,&a,&b);C规定:如果在“格式控制”字符串中除了格式说明以外还有其它字符,则在输入数据时应输入与这些字符相同的字符。下面输入是合法的:3,4 此时不用逗号而用空格或其它字符是不对的。3 4 3:4 又如:scanf(a=%d,b=%d,&a,&b);输入应如以下形式:a=3,b=4 9.输入字符的格式与要求不一致。在用“%c”格式输入字符时,“空格字符”和“转义字符”都作为有效字符输入。scanf(%c%c%c,&c1,&c2,&c3);如输入a b c 字符“a”送给c1,字符“ ”送给c2,字符“b”送给c3,因为%c只要求读入一个字符,后面不需要用空格作为两个字符的间隔。10.输入输出的数据类型与所用格式说明符不一致。例如,a已定义为整型,b定义为实型a=3;b=4.5;printf(%f%d\n,a,b);编译时不给出出错信息,但运行结果将与原意不符。这种错误尤其需要注意。

C语言中scanf的用法错误会怎么样?具体原理有人解释下吗?

展开全部你如果输入的三个数都带了,要这样写scanf(%d,%d,%d,&x,&y,&z);这样你输入的时候,需要这样写1,4,5

C语言 格式输入scanf函数 中的问题

scanf(%d%d%d -- %d 表示按整型 输入一个数,%d%d%d 表示按整型 输入三个数。scanf(%d%d%d,&a,&b,&c); 后面的 三个参数 &a,&b,&c 表示把依次输入的三个数,按次序 存到 a的地址里,b的地址里,c的地址里。3<回车>4<回车>5<回车> -- 输入的第一个数是 3,第二个数是 4,第三个数是 5。输入数据 的分隔符 是 <回车> 键第一个数是 3,存到 a第二个数是 4,存到 b第三个数是 5, 存到 c

C的scanf()函数使用问题!

scanf(%c,%f\n,&c,&d);你这里错了,scanf函数里不能加\nscanf(%c,%f,&c,&d);输入1,2A,5.5就可以得到结果如果将两个scanf的内容写到一起回更好些

C语言scanf 问题

要用空格,tab键或回车键将各个数据隔开。你那样输入他是不认得怎么分割的

c语言中scanf语句问题以及数据类型的关系,详细见问题补充。

展开全部事实上不应是scanf(%d,&x);而是scanf(%d\n,&x); 否则a[0]读入的是回车符,即\n;在用c语言编写输入语句的时候常用到scanf函数,初学者在刚用scanf函数输入时,经常会遇到各种各样的输入错误,最重要的是一定要记住scanf函数的输入格式,scanf函数里包含了哪些东西,输入的时候就必须有哪些东西,比如:scanf(%c%c%c),那么输入的时候就必须连续输入3个字符,中间不能有任何空格逗号或者回车符等分开,而如果是scanf(%c,%c,%c),那么输入3个字符的时候中间就必须用一个逗号分隔。 scanf函数最常用的两种输入方式%d整数输入方式,以及%c字符输入方式。 用%d方式输入整数时,输入一串数字然后按回车符,输入就完成了。而用%c方式输入字符时,就稍微复杂一点。一般来说用%c输入字符时,当输完以后,都习惯按一下回车,这时回车符就成了一个问题。 【例1】: scanf(%c,&a); /*此时输入一个字符,并按下回车,那么变量a将会正确接收输入的字符*/ scanf(%c,&b); /*但是变量b将会接收到回车符,其值为10,或者说ASCII码为10*/ 【例2】: scanf(%d,&x); /*此时输入一串数字并回车,变量x将正常接收到输入的整数*/ scanf(%d,&y); /*变量y不会接收到回车符,需要用户继续输入数字,并回车,正常接收到整数*/ 【例3】: scanf(%d,&x); /*此时输入一串数字并回车,变量x将正常接收到输入的整数*/ scanf(%c,&a); /*但是变量a将会接收到回车符,其值为10,或者说ASCII码为10*/ 【例4】: scanf(%d,&x); /*此时输入一串数字并回车,变量x将正常接收到输入的整数*/ scanf(%d,&y); /*若此时输入的是字母而不是数字,比如输入“s”并回车*/ /*那么变量y将不会接收到任何字符或数字,其值保持原样,不发生任何改变*/ scanf(%c,&a); /*此时变量a将接收到上一步输入的字母*/ /*即变量a中存储的字符将是s,而不是回车符*/ 【结论】: 当输入完整数或字符时,后面还需要输入字符时,为了避免输入的字符变成回车符,可以在输入字符前多加一条scanf语句来吃掉前面的回车符。此时用来吃掉回车符的scanf输入可以用%c方式,也可以用%d方式。当用%c方式来吃掉回车符时,回车符被读进了char类型变量中,当用%d方式来吃掉回车符时,回车符并没有被送进int类型变量中,而是在异常的字符输入后,被自动清除了。


本文地址: https://www.1dh.cc/article/3507.html
SOOGIF

SOOGIF提供搞笑、表情、美女、明星、热门事件GIF动图全搜索,GIF工具支持视频转GIF、图片合成GIF、GIF压缩、GIF编辑、GIF裁剪、在线录屏等功能。是QQ、微信斗图神器,微信公众号、微博、新媒体编辑GIF动图素材库,好玩的GIF出处发源地。

江阴市勤业化工机械有限公司

江阴市勤业化工机械有限公司

简至教育云

简至教育云提供教育门户、行政办公、校园安全、考务管理、成绩分析、智能课表、教师专业发展、学生发展评价、档案管理、资产管理、电子备课、网络教研、智慧教室、班班通、资源中心、微课频道、互动学习等功能模块,涵盖教育信息化的教育管理、教学应用、资产管理、资源建设与共享、学生学习等各个方面

重庆启轩电气有限公司

重庆启轩电气有限公司为广大用户提供电力电气仪表、微机保护器等产品。

淘宝代运营

聊城网络优化、网站建设、淘宝运营、阿里托管、详情页设计专家临清金山网络科技有限公司,为山东中小企业提供一条龙互联网服务,提供网站托管、网站优化、网站SEM/SEO推广、详情页设计、店铺托管服务。咨询热线:18563515900

陕西省英才委员会官方网站

陕西英才旨在“存史资政、团结育人、联络乡情、发展经济、共建陕西”的宗旨,广泛联系并积极宣传陕西籍在国内外的英才人物、政坛精英、军内英雄、科技才子、文坛巨匠、赛场健将、改革中的新闻人物、创业成功的企业家、社会名流等,为陕西的经济和社会发展贡献力量

体育馆网架厂家,干煤棚网架生产厂家,球形网架加工厂家,收费站网架安装厂家

徐州亿优网架钢结构公司专业体育馆,看台,干煤棚,操场,收费站,加油站罩棚网架设计安装,仓储物流网架,会展,水泥厂,螺栓球网架球及形网架工程施工,车间厂房网架安装,TEL:13912018611,QQ:20660890

VISIONFIN

杭州幻视金融汇率风险专家

OCR
OCR

厦门云脉技术有限公司专业研发OCR,OCR识别,票据识别,表格识别,表单识别,远程开户,营业执照识别,企业证件识别,发票识别,移动开户,文档识别,名片识别,OCR,OCRSDK,OCR识别,纸质文档管理,人证一致,票据识别,表格识别,表单识别,远程开户,发票识别,人脸识别等手机APP应用。

昆山亿联盛智能科技有限公司

昆山亿联盛智能科技有限公司