C语言程序提问

C语言程序提问,第1张

有很些问题,建议好好看看scanf()和printf()的使用方法,代码修改如下

#include<stdio.h>

void

main()

{

float

x,y

printf("print

a

price:");

scanf("%f",&x)

if(x<250)

y=0

else

if(x<500

&&

x>=250)

y=3%

else

if(x>=500

&&

x<1000)

y=5%

else

出错原因:

浮点数计算误差导致。经过几步循环之后,x并不精确等于0.6,而x/step+1也不是整数7,这样就会导致数组下标不是整数,所以会出错:

>> x

x =

    0.6000

>> num2str(x,'%.16g')

ans =

0.6000000000000001

>> num2str(0.6,'%.16g')

ans =

0.6

>> num2str(x/step+1,'%.16g')

ans =

7.000000000000001

MATLAB中的函数计算直接用数组运算就可以了,例如

x=0:0.1:2

y=2*x

如果涉及到向量的乘、除、乘方运算,相应的运算符应使用点运算。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11261295.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存