一般就这点问题
一、函数使用不规范
二、代码语法错误或者主要函数错误
三、变量、常量的类型使用不当
四、算法错误
明明代码就是这么写的怎么会输出一个不是我想要的值呢?
用c语言输入3,4,5这几个整数然后输出3.000000,4.000000,5.000000,明明代码没问题,编译器没报错,为啥就是得不到想要的结果呢?
没有进行数据类型转换或者函数的错误使用。
定义的是int类型的三个整数a,b,c使用scanf进行赋值,经常就有人在这时候犯错,什么少了&,该用%d的时候用%f, 该用%s的时候用%c.
输入的时候,你的scanf是这么写的
scanf("%d %d %d",a,b,c);
结果到了窗口给a,b,c分别输入值3,4,5时你这么输3,4,5 (正确输入为3 4 5)
然后你打印a,b,c的值为3.000000,4.000000,5.000000时,你直接干了个printf("%f %f %f",a,b,c);
a,b,c是什么类型的数值?你用%f打印?(你这么写编译器也不会报错)
然后你就得到了三个0.000000 😃
转换数据类型
float a1,b1,c1;
a1=a;
b1=b;
c1=c;
printf("%f %f %f",a1,b1,c1);
为啥我算一个银行存款,连款带息的值就是不对呢?没有报错啊?
答:公式都列错了
错误公式:本金+利息=(存款*(1+利润率))^年数
所以说当我们的程序运行出现与我们预期结果不一致的情况时,既然编译器没报错而且你觉得你思考的问题解决思路(也就是算法)没问题时,或者你对这个问题思考了很久,脑袋里幻想的编译器已经能编译出一个你想要的结果时,自信点,你的思路没错
错就错在平常你注意不到的一些小地方罢了
第一 检查你的公式写对没有(特别注意表达式的运算顺序),
第二 检查你的输入方式以及你的输入值与你输入值对应的变量类型匹不匹配是不是你该输入的值。
第三 是不是打错了字
比如英文输入成中文啊 想输入%s结果就是输了%c呀 printf里输&a呀 甚至打错字把变量名都打错的呀
这些一般人熟练了就很少出错误了 所以可以靠后考虑
而对于大部分编译器会报错的问题,一般在编译器下方都会报错给出原因和具体行数;
不懂英语的话直接copy,再goolge一下马上就能能清楚哪里有问题,还会有人教你怎么改;