1樓:網友
#include
using namespace std;
void main()
你一開始就把j+1
j還沒輸入時 是系統內不確定的一個值 要在你輸入j後 在操作它。
2樓:瀟凝君
在c++ 中變數不先初始化是不能夠進行賦值的,所以**。
i=j+1;
cin>>j;
應該調換一下位置。
cin>>j;
i=j+1;
這樣才不會出現錯誤。
3樓:隨風s低落
首先,你要知道,程式執行的順序是從上而下的。你一開始就定義了i,j兩個變數,而沒有賦初始值,那他們的值就是隨機數,也就是你所說的負數。接著執行第二句語句i=j+1,這時i的值就是j+1,也就是隨機數加一,而你下面做的任何操作都對i的值無效。
應該做一下修改就行了:
int i=0,j=0;
cin>>j;
i=j+1;
cout《就是這樣 嘿嘿 謝謝哈~我也是初學c++,不過你這個是關於c的。
4樓:曉風殘狼
其實你不用設定一箇中間變數j。直接用++運算就可以搞定了。
#include
using namespace std;
void main()
c++簡單問題
5樓:邢昭汝詩霜
cout提供了控制符:
dec、hex和oct,分別用於指示cout以十進位制、十六進位制和八進位制格式顯示整數。
cout/結果為:2a
6樓:匿名使用者
char *s;scanf(「%s」,s);puts(s);
沒有給s分配記憶體,所以不能接收資料,而不是格式問題,因此,改成char *s;scanf(「專%s」,&s);puts(s);,仍然不行!
b應改成char s[6]=;puts(s);
因為puts(s)中的s要有字串結束標誌,否則後面會輸出亂碼!
c++的問題
7樓:網友
在c++中,可以為引數指定預設值。在函式呼叫時沒有指定與形參相對應的實參時, 就自動使用預設引數。
預設引數的語法與使用:
(1)在函式宣告或定義時,直接對引數賦值。這就是預設引數;
(2)在函式呼叫時,省略部分或全部引數。這時可以用預設引數來代替。
注意:(1)預設引數只可在函式宣告中設定一次。只有在無函式宣告時,才可以在函式定義中設定。
(2)預設引數定義的順序為自右到左。即如果一個引數設定了預設值時,其右邊的引數都要有預設值。
如:int mal(int a, int b=3, int c=6, int d=8) 正確,按從右到左順序設定預設值。
int mal(int a=6, int b=3, int c=5, int d) 錯誤,未按照從右到左設定預設值。c設定預設值了,而其右邊的d沒有預設值。
(3)預設引數呼叫時,則遵循引數呼叫順序,自左到右逐個呼叫。這一點要與第(2)分清楚,不要混淆。
如:void mal(int a, int b=3, int c=5); 預設引數。
mal(3, 8, 9 );呼叫時有指定引數,則不使用預設引數。
mal(3, 5); 呼叫時只指定兩個引數,按從左到右順序呼叫,相當於mal(3,5,5);
mal(5); 呼叫時只指定1個引數,按從左到右順序呼叫,相當於mal(5,3,5);
mal( )錯誤,因為a沒有預設值。
mal(3, ,9) /錯誤,應按從左到右順序逐個呼叫。
再如: void mal(int a=8, int b=3, int c=5); 預設引數。
mal( )正確,呼叫所有預設引數,相當於mal(8,3,5);
(4)預設值可以是全域性變數、全域性常量,甚至是一個函式。但不可以是區域性變數。因為預設引數的呼叫是在編譯時確定的,而區域性變數位置與預設值在編譯時無法確定。
8樓:匿名使用者
#include
using namespace std;
struct output
;class time:public output;class date:public output;time::
time(int h,int m,int s)date::date(int m,int d,int y)void date::display()
void time::display()
void display(output& ot)int main()
另外,團idc網上有許多產品**,便宜有口碑。
9樓:
預設引數就像擬定一個列舉陣列,在沒有給陣列成圓賦值的情況下,是從0 1 2 3 ……這樣開始的。
10樓:匿名使用者
其實就是少寫一些**,沒有啥特別用處。
c++問題。
11樓:匿名使用者
變數的生存期取決於它的 儲存型別!
從變數的作用域的角度將變數分為區域性變數和全域性變數兩種。區域性變數定義在函式體內,函式被呼叫時,區域性變數才臨時的被建立,函式執行完後,區域性變數自動被銷燬;全域性變數是定義在整個程式空間內的,在開始執行程式時被建立,整個程式執行完了才會銷燬,因此一個變數(無論是全域性還是區域性變數)都有一個「建立」、「生存」、「銷燬」的過程,從這個意義上說變數是有「壽命」或存在「生存期」的。
變數的生存期取決於它的儲存型別。所謂「儲存型別」是指系統為變數分配的具有某種特性的儲存區域,儲存區域一般分為兩種:靜態儲存區和動態儲存區。
存放在靜態儲存區中的變數在程式執行初期就被建立,它們的壽命往往與程式同步;存放在動態儲存區中的變數是臨時性的,在程式執行期間隨時會被撤銷。
12樓:月下谷中
有建立的方式決定細節}
2.堆void funcclear(char *e)void main()
//程式結束後洩露了c的5個char,由於被世人所遺忘,在孤獨角落裡等待。
}3.沒事可以研究下funcclear(a)會出現什麼事情,和用不同的結構體試試。}
13樓:
在外面定義變數,生存期是程式執行完成,在括號裡面定義出了生存期就是在這個括號裡。
c++問題、、、、、、、、、
14樓:匿名使用者
假設鴿子數量為x,兔子數量為y;
那麼:x + y = n;
2*x + 4*y = m;
求得 y = m/2-n; x = 2n - m/2;
這樣程式就很好寫了,判斷錯誤需要這樣判斷。
必須為偶數。
>=n;
>=m/2;
以上三條必須同時滿足,否則就提示error.
或者可以這樣判斷:
if(x + y) !n ||x * 2 + y * 4) !m)
error;
**和樓上基本相同,樓上的只是沒有判斷m必須為偶數。
15樓:網友
你的程式是不是有個小bug,for(a=1...是不是從0開始,下面的b的迴圈相同),不知道我編的行不行,比較倉促,估計有些問題沒考慮,如下:
#include
using namespace std;
int main()}
16樓:網友
首先說下,你的程式可以執行,不會超時,很快就出來了,然後呢,你的程式我稍微做了下改動。
#include
using namespace std;
int main()
}if(flag==false) cout<<"error"<}if(flag==false) cout<<"error" c++問題,高手來 17樓: 作用域和可見性是不分家的。 myclass p[10]宣告得是一個10個元素的物件陣列,意思就是陣列元素是類的物件。 當p離開作用域的時候,當然要銷燬在記憶體中佔用的空間,而p是一個陣列指標,所以整個陣列的10個元素都會消耗(遇到ascii碼為0的停止),而每個元素又是物件,物件銷燬時,自動呼叫類的解構函式,處理善後工作,如釋放delete類物件的指標。 你可能會疑問,為什麼p作用域到了的時候,會自動消耗,而物件作用域到了的時候,不會自動消耗。這其實是為何需要解構函式的問題,一個類的物件,宣告定義的時候,你無法得知它具體包含多少個資料成員,所以初始化任務需要建構函式。同樣地,銷燬的時候,不知銷燬多少個資料成員(特指指標),這就需要你手動列出需要銷燬的指標,比如是銷燬一個還是銷燬二個。 以上均是拙見,正確性並非百分之百,請自行斟酌。 最好的學習方法是被實踐證明過有效的方法。建議你寫出示例程式,然後下斷,單步跟蹤除錯一下。 18樓:匿名使用者 學長給你答疑: 這句話說的太隱晦,出題的很淘氣。 陣列名字會被編譯器自動轉換為指向第一個元素的指標,因此這兒的陣列指標p就是。 指的陣列p,(我很不推薦這種叫法),這句話問的是當陣列p離開它的作用域,也就是。 離開定義它的地方,那麼編譯器將從堆疊中將陣列的空間釋放,釋放之前呼叫解構函式,有多少個元素就呼叫多少個解構函式。 2023年快樂!新年快樂!! 19樓:if渲染 陣列有幾個元素就呼叫幾次解構函式。 作用域就是說他是區域性變數還是全域性變數。 的優先順序比 高 c a b 2相當於c a b 2 c a 1 c 00000011 單目運算子 算術運算子 移位運算子 關係運算子 邏輯運算子 條件運算子 賦值運算子 逗號運算子 單目運算子 邏輯非運算子 按位取反運算子 字首增量運算子 字首減量運算子 正號運算子 負號運算子 型別 型別轉換運算... 你看一下你第二個friend是怎麼拼的?呵呵,寫錯字了。你這個問題可以把運算子過載為成員,也可以過載為友元。結果沒有區別,函式定義的方式不同而已。過載為成員函式後,a b,實際上是 a.operator b 過載為友元后,a b,實際上是operator a,b 注意在這裡返回值可以選擇返回新的物件... m為行,n為列 一 二維陣列的定義 二維陣列的定義格式為 型別說明符 陣列名 常量表示式1 常量表示式2 其中常量表示式1表示第一維下標的長度,說明陣列的行數,常量表示式2 表示第二維下標的長度,說明陣列的列數。例如 int a 3 4 該宣告定義了一個3行4列的二維陣列,陣列名為a,該陣列的下標變...簡單c語言問題,求教,簡單C語言問題,求教
C 簡單問題
簡單C語言問題