[問題] 表示性錯誤

看板C_and_CPP (C/C++)作者 (ken)時間16年前 (2009/04/18 02:05), 編輯推噓2(201)
留言3則, 3人參與, 最新討論串1/1
我想寫一個程式來顯示int轉double時的表示性錯誤 利用1/n 重複加n次 結果應該不會等於1吧 我的程式 #include<stdio.h> #include<math.h> int main() { float i,k,a,b,c; for(i=2;i<=30;i++) { a=0.0; for(k=i;k<(2*i);k++) { b=1.0/i; a=a+b; } if(a=1.0) printf("is 1\n"); else if(a<1.0) printf("less than 1\n"); else printf("greater than 1\n"); } } 結果出來 我從2試到30 結果都是1 我希望應該有些結果是小於或大於1吧!! 是我想法錯誤還是語法錯誤 要怎麼改語法才能讓某些結果不是1?? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.118.232.93

04/18 02:23, , 1F
if(a=1.0) <---會不會是因為你賦值了? if(a==1.0)
04/18 02:23, 1F

04/18 02:33, , 2F
對不起 真的是==的問題 我真是笨新手= =!
04/18 02:33, 2F

04/18 08:31, , 3F
if(1.0==a) 試試看
04/18 08:31, 3F
文章代碼(AID): #19wCJL60 (C_and_CPP)
文章代碼(AID): #19wCJL60 (C_and_CPP)