1樓:匿名使用者
1:是這樣的。不然你寫cout時要寫成std::cout.
這個是std這個名稱空間提供的操作(原實現細節在iostream裡面,不就在程式一開始預編譯了麼#include,有興趣你自己開啟看看,),意思是(std這個名稱空間裡面的cout)。比如說我們講兩個同學叫小王,一個在a班,一個在b班,我們事先宣告這次提到的都是a班的,就不會混淆了,編譯器也是這樣。這個如果不懂不急,後面看了更多的c++特性就自然明白了。
2:a=a+i,這句意思是說a的值要變成a+i的值。就是更新a的值啦。
不知道你有沒學過計算機組成原理。我們這裡的每個變數都是存在記憶體中的。這個操作實際上是在cpu控制下,我們找到a這個值存放的地方,讀取這個a值(i也是這樣),然後cpu將他們相加,得到的值放回原來a儲存的地方。
(原來的a被覆蓋)。
3:for(int i=1;i<=10;i++)
這句估計你理解錯了。int i=1在這個迴圈中只執行一次。是初始條件。
i++是在裡面的語句執行完後再執行的。
i++執行了,然後跳回到i<=10判斷。如果真,就繼續迴圈內操作。假,就跳出迴圈。
所以int a=0;
for(int i=1;i<=10;i++)
a=a+i;
就相當於從計算1加到10的值······
i++和++i區別要在一個完整語句中看,單獨拿出來效果其實是一樣的。
i++在這裡和++i是一樣的。
寫個例子:
int a=1,i=0;
b=a+(i++);
這樣我們得到的是b=1,i=1;
相當於b=a+i;
i=i+1;
如果int a=1,i=0;
b=a+(++i);
這樣我們得到的是b=2,i=1;
相當於i=i+1;
b=a+i;
繼續補充
for(int i=1;i<=10;i++)
a=a+i;
你可以看成一下步驟:
第一行:int i=1;
第二行:判斷是否i<=10,是-進入第三行;否-跳出迴圈
第三行:a=a+i;
第三行 i++;
第四行 :跳轉到第二行繼續迴圈
可以看到第三行不管寫i++還是++i都沒什麼影響。這個例子不適合理解i++和++i的區別。你別在這上面鑽牛角尖。多找幾個例子對比下,並且編譯執行下就很容易搞懂了。
2樓:
1、是的。使用名稱空間之後就可以直接使用了,如string a;
2、右邊的a也在增加,這兩個a是同一個。
3、for(int i=1;i<=10;i++) for裡面第一個引數是初始化,並不是迴圈條件。順序應該是首先初始化i=1,然後判斷i<=10,符合條件則進入迴圈,迴圈執行完畢時i++,然後再判斷是否大於10。i=1只使用了一次
3樓:鋼絲
呵呵 我也剛開始學。
1: 有了 using namespace std 你在使用 cout的時候就不用 指定名稱空間了, 如果不加的話 你就需要用 std::cout 才行 否則系統不認識 cout是什麼。
2:當然不是一直是0了 a是個變數 他只能儲存一個引數 你用了a=a+i a的值就重新整理了一次。他在不斷的加i而不是加1.
3:i=1->條件為真->執行a=a+i->i++->i=1 此時i=2了 不是1了
下一次迴圈就是i=2->條件為真->執行a=a+i->i++->i=3了
4樓:
1、引入namespace後可以不用寫std::而直接呼叫函式。
2、右邊的a也是在不斷加1的。a=a+i等於是這樣執行的:a+i賦值給a,然後再用賦值後的a+i,如此迴圈。
3、只是初始化i=1,然後在i<=10的前提下,i不斷的自加一,僅此而以……
c語言程式,請高手幫我看看哪裡錯了
else if numf mid 這個判斷錯誤導致你輸入其它數字沒有顯示。之所以輸入8可以是因為8是滿足 if num f mid 沒有迴圈 l mid 1 0 不可能滿足l 0。至於第二個問題我覺得你直接修改陣列的大小,執行程式,實驗下就知道了。else if num 就ok了 for i 0 i...
簡單的c 問題,一個簡單的c 問題
我來回答你 1.0 的作用是讓a b的結果是一個浮點數,要不然a b就是一個整數了。換個寫法就是c float a b,來個強制型別轉換,使得c的值是一個浮點數。回答完畢。當然是乘了!就是乘啊。用1.0就是把這個式子變成float型,也許c是float型的吧。為了沒有精度損失 應該是改變a的型別吧!...
C 的一個簡單的程式設計問題,C 簡單問題
以後在慢慢做好了!if.else要long int定義。記住這點就行了。做這種題,種捨得分啊!用c 怎麼程式設計這一題?編寫程式完成以下功能 輸出小於1000的自然數中,能被11整除且各位數字之和為13的數。要求用如下函式判斷一個整數是否能被11整除且各位數字之和是否為13 void fun int...