当前位置:编程学习 > C/C++ >>

C语言,下面这个输出来,为什么是负的

#include "stdafx.h" int main(int argc, char* argv[]) { int S,s,N,n; float Q,Q1,Q2,Q3; scanf("%d%d%d%d",&S,&s,&N,&n); Q=Q1+Q2+Q3; Q1=(0.10*(N+1))/10; Q2=(0.43*(S/500+s/78+N*5+n*1))/90; Q3=(0.47*(N+200*s))/2000; printf("Q=%f",Q); return 0; }
追问:好吧,那怎么能让程序循环嘞?就是输完一组数据,得到一组顺序,然后可以继续输数据~~~
答案:局部变量,没有显式初始化 默认值是随机的

Q1,Q2,Q3 没有初始化时相加的值 在你的机器上运行恰好是负数

再说你这个代码序顺也跟你想的不一样,中间三个等式没任何作用,聪明的编译器甚至可以把它忽略掉。
其他:Q=Q1+Q2+Q3;
这句放在最后就行了 要先求Q1,Q2,Q3,再求Q

上一个:C程序最小公倍数得问题
下一个:多线程 C#里的lock

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,