1樓:
嗯~~windows系統下我們通過鍵入ctrl+z來輸入檔案結束符,unix中用ctrl+d。主要就是針對這種while(cin>>x)的,雖然有時也可以通過輸入與x不同的型別資料導致出錯來結束程式,不過正規的還是輸入檔案結束符哈
2樓:匿名使用者
又是acm?你可以把題目發上來,上面應該會有提示,比如總共輸入多少組資料之類的。
你還是把全部原題發上來吧,沒準你漏掉乙個重要的提示。至少從你現在發的我看不出來有任何提示。
3樓:
你可以指定乙個結束符,比如 # 號,然後
if(a == '#')break;
關於c++的乙個簡單問題 10
4樓:gta小雞
引用要佔至少4個位元組,而char只佔1個位元組。
5樓:金色潛鳥
memory-efficient 是指 儲存效率高,省記憶體。引用用到位址 unsigned int (4 位元組), char 1位元組。
這裡涉及 函式的宣告定義與函式的呼叫返回。作為整個過程,這裡認為 用複製的方法 節省記憶體和記憶體的運算操作。引用 可以 工作,不是錯。
6樓:匿名使用者
應為編譯器會優化為通過暫存器返回值,而不是棧變數。使用引用的話本質上是記憶體操作,比暫存器要慢得多。 然而這類優化時至今日的硬體條件已經可以忽略不計了。
關於c++的乙個簡單問題
7樓:風若遠去何人留
如果你的編譯器 不支援c++11
那麼 auto 沒必要使用, 而是一定要有乙個型別。
auto string c = s1; 和string c=s1是一樣的。
如果支援, 那麼需要初始化來確定型別
也就是auto c=s1;
這裡不能用:的。
而且 也不能用for,你這個沒有迴圈的意義。
直接寫auto c=s1;
cout << c;
8樓:
auto是c++11才有的關鍵字,請問你的編譯器支援c++11嗎
關於c++的乙個十分簡單的問題
9樓:匿名使用者
void fun(double a,int len)
10樓:
問題出在i+2會超出a的下標.
當i=len-1時,a[i+2]=a[i+1]+a[i],前兩個都訪問出錯了.
修改如下:
for(i=0;i a[i+2]=a[i+1]+a[i]; 你輸入的數字超出int變數的範圍了。顯示為負數的原因是因為整型在計算機中是以補碼的形式存在的,最高位為符號位,你輸入的數字超出範圍導致最高位變成1了,所以是負數了。如果不想程式出錯,可以加乙個判斷語句。如果你輸入的數字超出int的範圍,就列印乙個出錯語句,這樣就不會影響程式的正常執行了。int n ... for a b c 的執行順序是 a初始化 b判斷d執行 c遞增 減改變條件 b判斷d執行 c遞增 減改變條件 b判斷 d執行c遞增 減改變條件 b判斷所以你每次輸入後,y 再判斷txt x y n 此時判斷的不是你輸入的值,而是txt中原始的輸入位置的下乙個位置的值。如果只錯第一句的話 for x... if a b 當a b的時候把 a與b的值互換,a b的時候不做互換if a c 當a c的時候把 a與c的值互換,a c的時候不做互換 以上兩個if語句找出a,b,c的最小值,儲存到a中,當然如果a在輸入時就是最小的那根本就不需要執行上面語句 實際上也不執行 if b c 找出b與c哪個小儲存在b... for i 0 i 3 i n i 0 這一句是把陣列n中的元素清零。k 2 for i 0 i for j 0 j 第一次for i 0 i n j n i 1 實際上是n 0 n 0 1 j,i都為0 結果n 0 為1 n j n i 1 實際上是n 1 n 0 1 j 1,i 0 結果n 1 ... 中間的p 不是因該是先使用p的值然後再 嗎?這句話沒錯,但這裡的 使用 在p 這個語句中並沒有實質性的使用。如果這一句是printf d p 那麼它輸出的是30,然後p再指向25。總之,在p 這個語句之後,p就不再指向30,而是指向25了。所以執行最後一句printf d n p 3 時,輸出的就是...關於C語言簡單的問題,關於C語言乙個簡單的問題!!
簡單C問題,乙個簡單C問題
簡單的c語言問題,乙個簡單的c語言問題
C語言簡單的問題,C語言乙個簡單的問題
簡單的C程式的問題,乙個簡單的C程式的問題