-
for (i=0;ii 未定義,在它前面新增乙個 int i;
char mingcheng[100];是乙個字元陣列,,100);而是要讀字串。
改為char*明城[100];
從表面上看,這是乙個錯誤,你不明白你要做什麼。
-
修改成功,您將其執行。
#include
using namespace std;
main ()
cout<< "how many cars do you wish to catalog?";
int x;
char *mingcheng[100];
int shuliang[100];
cin >>x;
for (int i=0;i> shuliang[i];
cout <<"here is your collection:";
for (i=0;icout
-
我不明白你**的目的。 兩個 for 迴圈中的 i 均未定義。
-
有兩個嚴重的錯誤:
1.程式結構有問題。 根據你的**,你可能知道你要反覆判斷輸入的分數是否合法,然後再判斷測試後的分數是否合法。 但是這個程式不這樣做,如果你按照你的**流程,一般流程如下:
輸入分數 -> 判斷分數是否大於 100(如果是,則執行 if中的**,這裡我就不贅述了) -輸入分數 ->判斷分數是否小於 100 -> 輸入分數 ->判斷分數情況(即剩餘的 if else if 語句)。
這個過程顯然是不正常的。 如果這是您想要的,您可以忽略此錯誤。
如果沒有,則需要更改。 我認為程式結構可以是這樣的:定義乙個無限迴圈,同時輸入它並確定輸入是否有效。 如果它是合法的,就把它打破來,如果它不合法,就繼續執行它。
2.最終的if判斷有問題。 第 24 行中的 if 語句寫錯了,邏輯等號寫成了賦值符號(即“==”寫成了“=”)。
在這種情況下,if 的條件將由 score 的值判斷為 true 或 false(取決於分配給該行的分數,non-0 為 true,0 為 false)。 此行的 if 條件是分配 100 的分數,這將導致條件始終為 true。
更正此問題的方法是將“=”更改為“==”。
-
這裡 s 是陣列的名稱 (char s[ ],p 是指標變數。
在陣列中,陣列的名稱表示陣列開頭位址處的常量,因此這裡的陣列名稱等效於 &s[0]。
p 用作指標,位址儲存在其中,因此 p=s 等價於 p=&s[0];。 它是分配給 p 指標的 s 的第乙個位址。 在 p++ 之後,您可以依次獲取陣列中所有元素的位址。
*p 是指 p 指向的位址的值。 如果要為 *p 賦值,則必須首先為 p 賦值(即 p 必須指向位址)。 如上所述,p 指向 p=s 之後的 s[0] 位址。
如果繼續寫 *p='a';這是關於把角色'a'該值分配給 s[0] 的位址。 s[0] 是'a'。
所以你不能在這裡寫 *p=s。
定義函式是括號中的引數,例如上面的 void fun(char s,int n),其中 s,n 是表單的引數。
當您呼叫此函式 fun(s,n) 時; 這裡的 s,n 是實際引數。
-
p 為指標,p = s 為輸入引數 s 的位址賦給 p;
p 是在位址 p 處獲取的值。
p = s 是錯誤的。
從**本身和執行情況來看,可執行程式的內容與貼上的**不匹配(可能是修改後沒有重新編譯,而修改前的**執行,否則不會**現在出現可以編譯傳遞的錯誤,例如第二行末尾有更多的“op”, 和“現有1人捐款無產出”),修改建議如圖所示: