[問題] 矩陣計算

看板C_and_CPP (C/C++)作者 (歐袂尬)時間16年前 (2009/07/05 20:37), 編輯推噓4(407)
留言11則, 5人參與, 最新討論串1/1
a.txt裡面是 2 1 5 1 -3 1 5 -1 2 程式: #include<iostream> #include<fstream> using namespace std; void main() { char s1[255],s2[255],s3[255]; int sum=0; ifstream A("a.txt"); A.getline(s1,255,'\n'); A.getline(s2,255,'\n'); A.getline(s3,255,'\n'); for(int i=0;i<strlen(s1);i=i++) { cout<<s1[i]; } cout<<endl; cout<<s1[0]<<endl; sum=s1[0]*s1[0]; cout<<"Ans="<<sum<<endl; } 輸出: 2 1 5 2 Ans=2500 在cout<<s1[i]; 這邊,可以讀到2 1 5 cout<<s1[0]<<endl; 這一行,也有輸出s1[0]的答案是2 但是sum=s1[0]*s1[0]; 輸出的結果卻是2500 這邊的輸出 應該要 2*2=4 才對 是我的邏輯錯誤? 還是程式碼有打錯? 一值無法計算出正確答案 請各位幫忙告訴我錯在哪裡 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.46.207.77 ※ 編輯: omega162 來自: 114.46.207.77 (07/05 20:37)

07/05 21:17, , 1F
你讀進來的東西是字元'2',不是數值2...
07/05 21:17, 1F

07/05 21:18, , 2F
'2'的ASCII值是50...
07/05 21:18, 2F

07/05 21:32, , 3F
讀進來的數字字串先用sscanf轉成int
07/05 21:32, 3F

07/05 22:56, , 4F
i=i++ 是不是有犯到置底十誡之九啊....@_@"
07/05 22:56, 4F

07/05 23:01, , 5F
還是一定會 i=i; i++; 這樣的順序執行??
07/05 23:01, 5F

07/05 23:17, , 6F
i=i++;就是一個運算式又要賦值又要做i++,我覺得有犯到耶
07/05 23:17, 6F

07/05 23:23, , 7F
小弟我也這樣覺得, 因為感覺和第九誡例子差不多^^||
07/05 23:23, 7F

07/06 00:01, , 8F
i=i++,本來是寫成i=i+2;只輸出數字不要輸出空白
07/06 00:01, 8F

07/06 00:01, , 9F
後來要修改,沒改好,抱歉
07/06 00:01, 9F

07/06 00:03, , 10F
原來讀進來只是字元,沒有轉換成數值,所以每次都運算不
07/06 00:03, 10F

07/06 00:04, , 11F
對, 非常謝謝各位,告訴我錯在哪裡
07/06 00:04, 11F
文章代碼(AID): #1AK9vkXy (C_and_CPP)
文章代碼(AID): #1AK9vkXy (C_and_CPP)