簡單C 問題,C 簡單問題

時間 2023-03-23 18:05:02

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

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語言問題,求教,簡單C語言問題,求教

的優先順序比 高 c a b 2相當於c a b 2 c a 1 c 00000011 單目運算子 算術運算子 移位運算子 關係運算子 邏輯運算子 條件運算子 賦值運算子 逗號運算子 單目運算子 邏輯非運算子 按位取反運算子 字首增量運算子 字首減量運算子 正號運算子 負號運算子 型別 型別轉換運算...

C 簡單問題

你看一下你第二個friend是怎麼拼的?呵呵,寫錯字了。你這個問題可以把運算子過載為成員,也可以過載為友元。結果沒有區別,函式定義的方式不同而已。過載為成員函式後,a b,實際上是 a.operator b 過載為友元后,a b,實際上是operator a,b 注意在這裡返回值可以選擇返回新的物件...

簡單C語言問題

m為行,n為列 一 二維陣列的定義 二維陣列的定義格式為 型別說明符 陣列名 常量表示式1 常量表示式2 其中常量表示式1表示第一維下標的長度,說明陣列的行數,常量表示式2 表示第二維下標的長度,說明陣列的列數。例如 int a 3 4 該宣告定義了一個3行4列的二維陣列,陣列名為a,該陣列的下標變...