1樓:匿名使用者
你好!1. 你的問題,第一行標頭檔案中include缺少了字母e。(細心,哈哈哈)
2.正如上位仁兄所說,這個問題確實對於不同的編譯器,結果很難預料,所以,專業人員大都不會寫出很難讀懂,並且不知道程式怎樣執行的程式。
以上原始碼在我的dev-c++5中編譯執行顯示輸出為:01
234 3,最後解答你的問題:首先你要明白輸出流「<<」的概念,輸出cout對應的流運算是從右向左進行的,將要輸出的內容輸入至緩衝區,遇到endl才一次輸出。換句話說:
cout流先進行了四次自加運算,然後從最右邊的x向左邊的x輸出,而輸出時,更麻煩,解釋如下:
首先對cout中的四個x從左向右編號,第一個x=0,執行第一個自加運算,第二個x=1,執行第二個自加,第三個x=2,執行第三個自加,第四個x=3,執行第四個自加,此時x=4.
下面輸出,根據流的運算,從右邊向左輸出,輸出第四個x=3,換行;輸出第三個x=2,換行……故而輸出:321
0最後執行第二個輸出流,輸出x=4.
祝你好運!!
都是c++之路上摸爬滾打的難兄難弟,不要你的財富值,給個好評總行吧??o(∩_∩)o哈哈哈~
2樓:匿名使用者
這個我試過,在一個cout語句中,是從右到左邊執行的。所以在輸出第一個x的時候x++已經執行了3次,然後輸出第二個x的時候x++已經執行了兩次。後面的同理。
而第二個cout跟第一個不是一條語句,要等前面一條cout語句執行完才會執行這一條。在這之前已經執行了4次x++。所以這個時候x已經為4了。
3樓:我是夏鋒
x++;是在編譯的時候就算過了,而在編譯的時候是從右到左編譯,所以第一個x++其實已經算了三次了,第二個算了兩次,第三個算了一次,第四個沒有算!所以第一個cout語句輸出是32
10下一個cout語句是在上一個cout語句便已結束之後,再編譯的,所以是執行了四次,所以輸出4,就是這樣了!
4樓:
這個問題其實沒有什麼意義,因為在不同的編譯器下的輸出不一樣
所以最好不要在同一條語句內出現兩次對一個變數的自增或自減,會造成誤解。
c++中用cout函式怎樣實現格式輸出
5樓:兔丞飛
#include
#include //不要忘記包含此標頭檔案
using namespace std;
int main()
擴充套件資料
#include // 在c和一些古老的c++中是stdio.h,新標準為了使標準庫
// 的標頭檔案與使用者標頭檔案區別開,均推薦使用不用副檔名
// 的版本,對於原有c庫,不用副檔名時標頭檔案名前面要加c
class myoutstream
;const myoutstream& myoutstream::operator <<(int value)const
const myoutstream& myoutstream::operator <<(char* str)const
myoutstream myout;//隨時隨地為我們服務的全域性物件myout
int main()
6樓:匿名使用者
c++**為:
#include
#include //不要忘記包含此標頭檔案int a;
cout 寬度為n,setiosflags(ios::left)設定輸出資料在本域寬範圍內向左對齊。 7樓:何度千尋 首先要加上標頭檔案#include #include #include //不要忘記包含此標頭檔案 using namespace std; int main() {int a; cout<<"input a:"; cin>>a; cout<<"dec:"<制形式輸出整數 cout<<"hex:"<進位制形式輸出整數a cout<<"oct:"< 輸出結果如下: input a:34↙(輸入a的值) dec:34 (十進位制形式) hex:22 (十六進位制形式) oct:42 (八進位制形式) china (域寬為) *****china (域寬為,空白處以'*'填充) pi=3.14285714e+00 (指數形式輸出,8位小數) pi=3.1429e+00 (指數形式輸出,4位小數) pi=3.143 (小數形式輸出,精度仍為) 8樓:匿名使用者 左對齊:cout <意要加上標頭檔案#include io 流控制標頭檔案, 主要是一些操縱用法如setw(int n),setprecision(int n) 9樓:匿名使用者 常用的是setw(); 10樓:400和260和 cout不是函式,是一個物件! 如c++語言cout語句裡的問題,輸出的格式為什麼是這樣? 11樓:秋天的風雨人生 是被雙引號包圍起來的才是字元啊,你的i沒有被包圍, 你只是包圍了這兩個而已。你應該這樣cout<
12樓:匿名使用者 自己去翻書,在輸入輸出流有詳細說明 c++中,多個要輸出的資料寫在一個cout中的問題? 13樓:匿名使用者 這主要是需要你理解a++和++a的區別: 1.a++: 先返回a的值, 再計 算a=a+1 1.++a: 先計算a=a+1,再返回a的值cout<函式經歷了回如下步驟. 1.最右側答a++首先輸出了a的值:10 2.a=a+1使得a=11. 3.左邊的cout<
希望對你有幫助 14樓:幻の上帝 c++的stl中cout的「<<」輸出物件是通過運算子過載實現的。運算子過載不能改變運算子原有的優先順序和結合順序。 《具有左結合性,即連續的《表示式中先執行左邊的《得到結果後,再代入後繼表示式的值,執行接下來的<<(這裡的「執行」指執行過載實現裡的輸出指令)。 《的左運算元是輸出物件cout或它的引用;右運算元可以是不同的型別,根據資料型別選擇不同的輸出過程以便正確地輸出值;同時cout的《運算也有返回值,為cout自身的引用,可以這樣就能通過上面的巢狀來輸出多個值。 cout<
(((cout<
但是要注意,儘管代入表示式的順序(不是ls所說的入棧順序,這裡的順序決定具體傳遞哪個引數,在傳遞引數之前決定,和傳遞引數本身的順序無關;傳遞引數和恢復堆疊的方式由呼叫約定(諸如__cdecl或是__stdcall)確定)是由優先順序(以上的括號)定死的,但在此之前的需要代入表示式的各個不同子表示式之間的求值順序並不是確定的,不同的編譯環境下可以有不同的行為。例如在dev-c++下測試結果為10,10,而vs2008下的情況和lz所說相同。出現lz的情況時,這條語句等價於: (((cout<<11)<<",")<<10)< 可見傳遞進《是a的引用,先計算了a++,然後再代入了前面的部分,最後整體輸出。對於這種標準中沒有定義,平臺實現可以有差異的涉及了多個序列點(a++運算子***表示式和a這個表示式之間形成兩個序列點)不明確的情形,完全不必糾結其中的求值順序——這是沒有意義的。事實上,現實程式設計中應該儘量避免這種使用,以免出錯。 而輸出順序從左到右,是預先定義的,由cout的《過載運算子內部實現(至於這樣定義的原因,是為了使表示式直觀地符合順序輸出的語義)。 ==== [原創回答團] 15樓: 這個問題不必太過復追求 對於不通的編制 譯器,得出bai來的結果並不一du樣 首先,入棧zhi順序,從右往左 dao但是在入棧前的計算順序沒有明確規定,依編譯器而定你可以參考下 16樓:止樂尉遲書 這主要是copy需要你理解a++和++a的區別bai: 1.a++: 先返回a的值, 再計算dua=a+1 1.++a: 先計算a=a+1,再返回a的值 cout 1.最右側 daoa++首先輸出了a的值:10 2.a=a+1使得a=11. 3.左邊的cout<
希望對你有幫助 include include typedef int elemtype typedef int status typedef struct lnode lnode,linklist 如果i小於1或者大於表長加1,則返回error if p j i 1 s linklist malloc sizeo... m.nf 就是總共m位,源小數點後佔n位,7.3f 也就是總bai共佔7位,位數不足的時du候zhi右會用dao空格補足,超過的時候就會被截斷,比如123456.12345,就會得到123456.123,因為這個數整數部分就有6位了,而你的要求是小數點後要留3位,則剩下的整數部分只有4位,程式不會把... 在c 裡怎麼能知道一個變數的具體型別,答 1。執行時獲知變數型別名稱,可以使用 typeid 變數 name,需要注意不是所有編譯器都輸出 int float 等之類的名稱,對於這類的編譯器可以這樣使用 float f 1.1f if typeid f typeid 0.0f 2。對於多型類例項,想...c語言for迴圈輸出問題,C語言 for迴圈輸出陣列的問題
問個C語言輸出問題printf53fn
C關於typeid語句無法正常輸出的問題