我在编写C语言代码的时候,有时候代码会有一些逻辑上的错误,就是代码可以运行,但得不到正确的结果.

作者&投稿:融变 (若有异议请与网页底部的电邮联系)
以下是用c语言实现判断静态链表是否递增的代码,但运行是出现逻辑错误,我觉得是不是++list出了问题??~

问题就出在 [++list] 这一句中.
不过不是自加运算有问题, 而是比较运算中, 两个字表达式的计算顺序的问题.
[list->data >= (++list)->data]
如果这个表达式是从左往右计算的, 那结果肯定没问题. 但它其实是先计算 >= 号右边的式子, 后计算左边的. 所以, 两次提取的, 都是 list 自加之后的值. 二者肯定相等了.

goto语句也称为无条件转移语句,在结构化程序设计中一般不主张使用goto语句, 以免造成程序流程的混乱,使理解和调试程序都产生困难。
1968年,Edsger Wybe Dijkstra 首先提出“GOTO语句是有害的”论点,向传统程序设计方法提出了挑战,从而引起了人们对程序设计方法讨论的普遍重视。
主要理由是:GOTO语句使程序的静态结构和动态结构不一致,从而使程序难以理解,难以查错。去掉GOTO语句后,可直接从程序结构上反映程序运行的过程。这样,不仅使程序结构清晰,便于理解,便于查错,而且也有利于程序的正确性证明。
后来从理论上证明了:任何程序都可以用顺序、分支和重复结构表示出来。这个结论表明,从高级程序语言中去掉GOTO语句并不影响高级程序语言的编程能力,而且编写的程序的结构更加清晰。
所以目前是不推荐使用goto的。

新手最郁闷的事情莫过于程序可以运行但是却得不到自己的结果了吧。
老手最郁闷的事情莫过于新手问为什么我的程序可以运行但是却得不到自己的结果了吧。
比如:
你天天用操作系统。
如果你用过Windows98就应该知道那时候系统经常崩溃的。
但是微软设计的时候,不会把它故意设计成每小时或者没几天崩溃几次吧。
不崩溃的时候,程序不也是正常运行么。
为什么得不到自己想要的结果:
那是因为你的程序根本就没有写对
比如:
老师让你输出:1
你写个程序输出:2
你的代码当然编译不会出错。
而且可以很好的运行,但是结果就是2.
永远都不会是1,因为你就让他输出的2,结果怎么会是1呢。
开发人员都知道:
再也没有比修改语法错误再简单的了
直接看看编译器报的错,看看第几行,修改。OK。。太简单了
逻辑错误就得调试了
这个世界上只有调试不开发的。没有开发不调试的。
不会debug。永远都不是程序员。
你不可能一下子就得到自己想要的结果。
尤其是比较大的程序。
gdb..学习它,使用它,爱上它。
(gdb *nix平台的。如果,而且我猜你用的是Windows,Windows用vs不错)

调试。
一步一步调。
运行一步,看看期望结果对不对。
————————
懒汉调试法:
程序中间打个断点,看结果对不对:
对:剩余部分中间打个断点
不对:前面的代码中间打个断点

学会调试,一般的逻辑问题调试了就可以找到解决方法了。可以自己到网上找找调试的方法,实在不会就让别人检查下程序,比如发到c语言吧或者cQQ群里求助

学会设置断点 跟踪数据 跟踪变量 一步步调试 你会找到不是想要的那个变量 然后在附近查看逻辑上的问题


平板上写C语言代码用什么软件?
在平板上写C语言代码,可以使用以下几种软件:Turbo Editor - 一款Android平台的文本编辑器,支持多种编程语言,包括C语言。它有代码高亮、自动缩进等功能,可以让你更加方便地编写代码。Dcoder - 一款支持多种编程语言的编程编辑器,包括C语言。它提供了许多代码示例和代码片段,可以让你更快速地编写代码。

如何在C语言中编写阶乘代码
1、首先在打开的C语言软件窗口中,在Main函数的上方,写上阶乘函数的框架,如下图所示。2、然后定义一个变量【result】,如下图所示。3、然后输入if判断语句,就可以写下程序的关键语句,如下图所示。4、接下来就可以调用输出,如下图所示。5、最后点击运行,如下图所示,就可以运行测试。

怎样编辑C语言代码并运行它?
当编写完一个程序后,需要首先进行编译,然后再运行。如下图所示,程序编写完毕后,点击工具栏中的Execute,选择compile(编译)。如果没有错误,再选择Execute,选择run(运行)。

VC6.0(VisualC++6.0)使用教程(使用VC6.0编写C语言程序)
6、编写C语言代码,新建源文件之后会出现图7,需要点击一下“FileView”会出现图8的界面。7、双击info.c,进入编辑界面,输入代码。8、编译并运行代码,可以在“组建”菜单中找到“编译、组建、执行”的功能,分别点击运行。9、也可以用简单的方法,依次点击屏幕上的三个按钮。10、保存编写好的源代码...

c语言中的编辑,编译,连接,运行分别是什么意思
1、编辑:编写代码,制作C语言的源文件。2、编译:是由编译程序将C语言源文件转换成二进制中间文件,对文件内部的语法语义做处理,如果编译出错,无法进行后续动作。3、链接:将编译中生成的中间文件组合成二进制可执知行文件,这一步会对文件之间的关联做检查,如果出错,将不会生成可执行文件,也就无法...

用c语言编写输入ASCII码的代码。
include <stdio.h> int main(){ char a;a=getchar();printf("所输入的ASCII码为:%d",a);return 0;}

使用VisualC++6.0编写简单C语言程序入门教程?
4、在上述操作的基础上,保存文件到指定的文件夹。这是我保存到桌面的Demo文件夹中,如下图所示。5、选择路径之后,单击“确定”按钮,得到如下图说是的界面,在右边的编辑区内,您就可以开始编写C语言代码了。6、开始代码的编辑。下面,我们编写一个简单的两数求和的代码,代码编辑如下如所示。7、编译...

c语言编译器电脑版有哪些?
可以编写c语言的软件有:Vim、C编译器、Dev-C、Code:Blocks、VisualStudio等。VimVim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。VIM是自由软件。c语言可以用的编译器有很多,包括MicrosoftVisualC++、MyEclipse、TurboC和gcc编译器等。c语言编译软件有...

用c语言编写的代码是一个什么
用c语言编写的代码程序是一个源程序。源程序是指未编译的按照一定的程序设计语言规范书写的文本文件,是一系列人类可读的计算机语言指令。源程序是指未编译的按照一定的程序设计语言规范书写的文本文件,是一系列人类可读的计算机语言指令。在现代程序语言中,源代码可以是以书籍或者磁带的形式出现,但最为...

c语言程序的基本单位
C语言程序的基本单位是函数。函数是C语言程序中最基本的组织单位,它由函数头和函数体组成。函数头包含了函数名、返回值类型、参数列表等信息,用于告诉编译器函数的基本信息。函数体则是函数的具体实现,包含了完成特定任务的代码。在编写C语言程序时,合理地使用函数可以提高代码的可读性、可维护性和可...

安定区15190339492: 编程c语言程序时会突然不能换行 打字时会把后面的字代替 -
郟致脱氧: 我以前也遇到过这个问题,你可能是不小心按到了键盘上的Insert键,再按一下就可以了

安定区15190339492: 请问我用C++60编写C语言程序,为什么有时候可以编译有时候不能?我是初学者,请有心人帮帮忙,是软件问题 -
郟致脱氧: VC++6.0吗? 一般考虑程序问题 注意;和 ; 的区别 前面一个是中文输入状态的分号 后面一个是英文输入状态的分号 前面一个编译时不通过的,后面一个是可以的 编程的时候最好不要用中文输入法 否则容易出现错误你可以把有问题的程序发上来看看 -------------------------------------- 可能是文件扩展名有问题 -------------------------------------- 你新建的时候,应该是新建一个工程,再新建一个文件C++ Source File(C++源文件),这样就可以默认为.cpp了,.cpp是c++默认的后缀名.可以上网查下VC6.0的使用教程什么的.

安定区15190339492: 我在编写一个c语言代码时包了我理解不了的错.需要指出我为什么会报错,谢谢指点 -
郟致脱氧: ①输入g的scanf语句的上一行末尾是中文分号②case1 后面是中文冒号一般这种报错(stray \+数字)的原因是代码里面混入了中文字符,编译器识别不出来

安定区15190339492: C语言写代码时为什么有时总习惯在输入后面加getch()? -
郟致脱氧: 因为编译器编译完以后会自动退出 如果将getch()放在后面 就可以让用户手动输入一个字符再退出 方便查看运行效果

安定区15190339492: c语言中 为什么有时候输入.就陷入死循环了??? -
郟致脱氧: 那要看你输入的是什么,还有具体问题具体分析. 比如说有的时候让你输入除数,你输入了0.0是不能做除数的,而你的程序中又没有列出当用户输入0时,程序应该干什么,是应该报错呢,还是当做1处理呢.计算机不知道该怎么做,他只知...

安定区15190339492: c语言写单片机程序时用数组时有时加code,问什么 -
郟致脱氧: 虽然我不是特别的理解,但根据郭天祥的书上的解释是:C在定义数组时是占用内存空间的,而code是编码的意思,在定义编码时是直接分配到程序空间的,编译后编码占用的事程序存储空间而非内存空间. 针对这段解释,我个人的理解是,在有些时候,定义的数组中包含的元素比较多的时候,数组的所占的存储空间就会大一些,而我们不希望其影响内存,而把它安排到编码空间,一定程度上可以节省内存,这是我的个人理解,希望采纳.(我猜你在看数码管这块,是吗?)

安定区15190339492: 为什么我编的C语言运行一半就跳出了呢?代码如下 -
郟致脱氧: 跳出不知你说的是什么个跳出, 蹦出来一个窗口那也叫跳出.然后说说逻辑错误, scanf输入的第一个参数, 理论上是只能有输入控制符的, 是不能加任何别的字符. 而你写的, 多写了一个逗号, 那么输入的时候就会出错.

安定区15190339492: 我在用VC写C语言的代码的时候提示是没有错误的,为什么在运行的时候弹出编辑框说,无法执行程序? 求解释 -
郟致脱氧: 运行时错误,有可能是内存管理不善,比如数组越界等等,建议此类问题贴出代码

安定区15190339492: 一般我们写C语言程序的时候,一般运行都只是执行一次,而单片机及PLC执行代码的时候是反复执行的.
郟致脱氧: 我们编程,一般是练习和测试程序实现的功能,通常执行一次没有问题就可以. 在工业现场,PLC是在线运行的,即24小时连续不断地进行.PLC是根据完成的功能要求,通过分配时序,不断地调用相应的功能模块,大部分时间处于等待状态,并不是死循环.

安定区15190339492: 为什么在C语言中编辑源代码时用“if”语句后,在使用时执行到此命令时会显示“错误”? -
郟致脱氧: 这种提示一般是你代码中的 指针指向了系统内存的只读地址,并且你的代码里有尝试修改这个值的操作,这样操作系统当然不允许你修改,就会提示上面的错误.具体要看代码了,最好还是把代码贴上来,这种错误不是语法错误...语法错误编译器会报错的.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网