[问题] while循环的问题

楼主: zzhiphop6 (老头)   2015-02-26 13:40:44
开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
dev c++
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
问题(Question):
问题出现在这段程式码
quardilateral = 1;
while(quardilateral = 0) {
预期的正确结果(Expected Output):
quardilateral = 1;
while(quardilateral = 0) {
while不执行
quardilateral = 0;
while(quardilateral = 0) {
while执行
quardilateral = 1;
while(quardilateral = 1) {
while执行
quardilateral = 0;
while(quardilateral = 1) {
while不执行
错误结果(Wrong Output):
实际结果却是
quardilateral = 1;
while(quardilateral = 0) {
while不执行
quardilateral = 0;
while(quardilateral = 0) {
while不执行
quardilateral = 1;
while(quardilateral = 1) {
while执行
quardilateral = 0;
while(quardilateral = 1) {
while执行
程式码(Code):(请善用置底文网页, 记得排版)
// 引入标准程式库中相关的输入、输出程式
#include <iostream>
// 引入标准程式库中相关的字串程式
#include <string>
#include <math.h>
//std 为标准程式库的命名空间
using namespace std;
int main(void) {
double a;
double b;
double c;
double d;
printf("please enter the fixed edge of a quardrilateral\n");
cin >>a;
printf("please enter others edge of quardrilateral\n");
cin >>b;
cin >>c;
cin >>d;
double sita;
sita=0;
double diagonal;
diagonal=pow(pow(a,2)+pow(b,2)-2*a*b*cos(sita),0.5);
int quardilateral ;
quardilateral = 1;
while(quardilateral = 0) {
if (c+d>diagonal,c+diagonal>d,d+diagonal>c){
quardilateral = 1;
sita=sita+0.01;
cout << sita << endl;
}
else{
quardilateral = 0;
cout << quardilateral << endl;
}
}
system("pause");
return 0;
}
补充说明(Supplement):
while执行与否完全无规则
有时候判断true执行
有时候判断false执行
怎么会这样
作者: diabloevagto (wi)   2015-02-26 13:49:00
=跟==是不同的
作者: a771116123 (Kerwin)   2015-02-26 13:50:00
楼上突破盲点啦XD 我还看半天
楼主: zzhiphop6 (老头)   2015-02-26 13:53:00
哪尼!!!!!!!!!!!!
作者: petercoin (彼得币)   2015-02-26 14:30:00
==才是真的等于 =是赋值
楼主: zzhiphop6 (老头)   2015-02-26 15:32:00
另外再请问 我如果要判断三个条件都要满足只要一个不满足就执行else 这样要怎么写呢
作者: bibo9901 (function(){})()   2015-02-26 15:39:00
用 && 把条件串起来
作者: a27417332 (等号卡比)   2015-02-26 16:13:00
恩...这问题我认为应该是不需要版友的关键字就是了@@阿不小心按到推囧
作者: bigpigbigpig (To littlepig with love)   2015-02-26 20:42:00
这是初学者常犯的错误,混淆了 = 和 == 运算子
作者: PkmX (阿猫)   2015-02-26 22:29:00
-Wall -Wextra -pedantic不用想直接开下去就是了
作者: MOONRAKER (㊣牛鹤鳗毛人)   2015-02-26 23:36:00
有的人会写 while (1==expression) 这样误写成=也会错
作者: loveme00835 (发箍)   2015-02-27 00:04:00
第一个想到是 <iso646.h> 只可惜没 eq.. xD
作者: s1000 (s1000)   2015-02-27 10:54:00
==
作者: MasTerNBHD (NBHD)   2015-02-27 13:49:00
第一页就看到 "=" 是问题了...
作者: softseaweed (Gladys von Wackenheim)   2015-02-27 18:42:00
这...
作者: MashiroKinji (MashiroKinji)   2015-02-28 05:29:00
如果是VB转过来的常常会做这种事情..我就是....
作者: sss22213 (sss22213)   2015-03-04 12:49:00
== 才是比较运算子

Links booklink

Contact Us: admin [ a t ] ucptt.com