c语言求解,为什么不能调试

c语言求解,为什么不能调试dev c++软件

我仔细阅读了你的 C 语言源程序,你的程序没有任何问题。程序功能就是交换两个正整数的数值。我的建议是:你首先检查一下你的 C 语言程序中的引号、括号、大括号、以及分号等是否均为小写英文字符?如果确认你的程序中的所有符号均为小写英文字符,那么你把该程序拷贝到另外一台有 C 编译器、并保证是能够正确编译、运行的机器上试试看,如果可以编译、运行的话,那就是你的机器上的编译器有问题了,你重新安装一下试一试。追问

突然出现这个

追答

这一类关于异常读取某个内存地址的问题,也有可能和你的操作系统有关。如果WINDOWS操作系统有毛病了,也会出现我们平时经常见到的类似出错信息:Can't read at 0x.....、或者是:Can't write at 0x.....。如果你的程序确实在别的机器上能够正确运行,那就肯定可以证明是你的电脑有问题了。实在不行的话,你可以首先重新安装 C++编译器,如果还是不行的话,那你可能就需要重新安装操作系统、然后再重新安装编译器了。

追问

好像编译结果不一样

追答

你把目前的这个 Project 彻底关闭,然后把源程序拷贝到编辑窗口,保存文件,并重新创建一个全新的 Project(工程),试试看。

追问

上面1,2张图是我的电脑,第3张是别人的电脑,好像编译日志那里少了东西

没指出错误

追答

但是你的源程序确实没有错误。你再在Linux 下面使用gcc 编译运行试试看。

追问

请问写程序前是不是要先点击项目再新建原程序

追答

那不一定。也可以先写程序,然后再创建新的project。

追问

好的,谢谢

追答

不客气。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-11-13
前面声明a是整型数变量,在第8行中又它等于一个平方根,这样子会造成数据丢失。如2的平方根,只能显示1而不能显示1.414。后面的“调试显示”的内容就是这个意思。
解决这个问题,把:
int i,j,a,sum=0,count=1;

改成:
int i,j,sum=0,count=1;
double a;
就可以了。
第2个回答  2018-07-02
// 这个不是不能调试,而是你的代码有BUG

// 上面写得很明确

cpp1.exe 程序
在第54行代码的fscanf函数
调用的第一个参数为NULL了

第3个回答  2014-11-13
a=sqrt(i);语句中sqrt()函数返回值应该是double型的,但是这里a为int型,直接赋值会有一部分数据丢失,这是一个警告,不影响运行。
第4个回答  2018-04-02
是不是数据定义有问题
相似回答