用printf 表矩陣,值跑掉了 |
尚未結案
|
keys
一般會員 發表:2 回覆:3 積分:1 註冊:2005-06-10 發送簡訊給我 |
各位大大好 今天小弟有個矩陣相乘的程式,是由兩個TXT檔(MatrixA.txt和MatrixB.txt)輸入矩陣,判別後再相乘,得一矩陣TXT黨(MatrixC.txt) 然後先說明我的問題 我為了要排的整齊,所以用了printf指令 但是,其中有些值會偏掉,不知道是否是因為printf指令了關係 小弟給了一些範本,和矩陣例子 讓大大們方便下載(內含A,B,C矩陣TXT黨,和 兩個C++黨:019(沒有用printf寫的)是沒問題的,019re(是用printf寫的)是有 問題的) 還有Code也給大家看看 希望大大能幫個忙 code
#include |
Royce520
高階會員 發表:18 回覆:157 積分:100 註冊:2002-09-13 發送簡訊給我 |
dear keys,
大致上看了一下, 我覺得可能是 printf 引起的
(a) 因為你宣告 C 是 float 型別的變數
(b) 但是你想要這樣輸出 fprintf(CC,"%5d",C),
其實 printf 系列的函數是一些特殊的函數...
有所謂的 變動引數串列(variable-length
argument list)的設計在其中. 你可以去查相關
資料. 因此你的格式字串(也就是"%5d")要跟後面
要使用的的變數型別相符(C), 不然他會解釋錯誤
你就會得到莫名其妙的輸出.
(c) 因此, 建議你改成 fprintf(CC,"%8.3f",C) 這樣 *真實的事物最美, 簡單的道理最好, 我能體會的 太少*
------
不要忘記呼吸,不要忘記編程! ∩__∩ |
keys
一般會員 發表:2 回覆:3 積分:1 註冊:2005-06-10 發送簡訊給我 |
恩
我發現問題了
// 儲矩陣裡的值 for(int j=0,k=0;AA >> A[j][k];k ){if(k-1==m){k=-1;j ;};cout << A[j][k] << endl;} for(j=0,k=0;BB >> B[j][k];k ){if(k-1==q){k=-1;j ;};cout << B[j][k] << endl;}改成 // 儲矩陣裡的值 for(i=0,j=0,k=0;k這是完整的code #include |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |