Dev C++运行C语言代码控制台无输出 同代码在线编译器运行正常
问题原因及解决方法
- 最常见的触发原因是你忽略了代码的执行逻辑:这段代码启动后会首先要求你输入5个浮点型数值,输入完成后才会打印查找提示和后续输出。你看到的空白控制台是程序处于等待输入的状态,并非没有输出,直接输入5个数字(用空格或回车分隔)即可看到后续内容。
- 其次可能是Dev C的输出缓冲区未自动刷新:旧版本Dev C的默认配置下,标准输出内容如果没有以换行符结尾,会暂存在缓冲区不会实时打印到控制台。你可以调整printf语句的写法,把换行符移到字符串末尾,比如
printf("enter the value to be searched\n");,也可以在printf之后添加fflush(stdout);手动刷新缓冲区。 - 如果上述方法都无效,可以排查编译配置问题:
- 打开Dev C++顶部菜单栏的「工具」→「编译选项」
- 确认使用的是默认的TDM-GCC编译配置,没有添加异常的自定义编译参数
- 点击清空缓存后重新编译运行代码即可
额外优化建议
你代码中直接用==比较浮点数的写法存在精度误差问题,极大概率会出现匹配异常,建议改为差值阈值判断的写法,需要先引入<math.h>头文件:
#include <stdio.h> #include <math.h> int main(){ float a[5],*ptr,val; int i,flag=0; ptr=a; for(i=0;i<5;i++){ scanf("%f",ptr+i); } printf("\n enter the value to be searched"); scanf("%f",&val); for(i=0;i<5;i++){ // 浮点数比较判断差值小于极小阈值即可认为相等 if(fabs(*(ptr+i) - val) < 1e-6){ flag=1; break; } } if(flag==1){ printf("\n element found"); } else printf("\n not found"); return 0; }
内容的提问来源于stack exchange,提问作者user17440403
相关产品推荐
相关产品推荐

