初學者,看看出了什麼問題,初學者學習C語言是為了幫助發現錯誤

發布 科技 2024-08-12
20個回答
  1. 匿名使用者2024-02-01

    比如2樓,應該用sum=sum+sign*(1 i),這很明顯,你可以自己除錯一下找到。

    但是有乙個隱藏的錯誤不容易被發現,你肯定會在執行幾次後找到它。

    既然 i 被定義為 int,那麼 1 i 的結果只能是整數,而當 i > 1 時,1 i 的結果是 0

    則總和輸出為 2

    如果要實現小數點,應該使用 sum=sum+sign*(,或者將 i 定義為 float,這是編譯器的一種機制,當乙個計算的兩邊都是 int 時,那麼計算的結果也是 int,只需將運算子的左值或右值改為 float,那麼運算的結果就可以變成 float 了

  2. 匿名使用者2024-01-31

    i=sign*i 錯了。

    你使用 i=i+1,它很亂。

    您只需使用 sum=sum+sign*(1 i)。

  3. 匿名使用者2024-01-30

    #include

    #include

    int max;

    int larger(int a, int b, int c) 比較 3 個數字並得到它們的最大值。

    int main(void)

  4. 匿名使用者2024-01-29

    兄弟,你確定這裡是這樣用的嗎?

  5. 匿名使用者2024-01-28

    呃,,錯誤很多,main裡沒有空隙,而且在scanf裡你看乙個%d呵呵。還有乙個函式體型別的 int。 我會試試,看看是不是該送你了。 樓下是正確的解決方案。

  6. 匿名使用者2024-01-27

    #include

    void main()

    int max 3 (int a, int b, int c ) 的比較可以使用三元運算子 n= a > b ? a : b;

    int max 2(a,b) 函式定義應新增的變數型別,int max 2(int x,int y)。

  7. 匿名使用者2024-01-26

    陣列定義了兩次?

    中間的if(max>a[i][j])不應該改為“如果這是帝國登記冊的最大值”嗎?

    main 函式 return max 將不租用任何東西並輸出肢體。

  8. 匿名使用者2024-01-25

    1.重複定義乙個陣列,2當彈簧蒙皮 max>a[i][j] 是返回最大值時,則不執行 printf;

    如果你想在陣列中獲得最大的笑差,你應該把 return 放在 printf 之後。

  9. 匿名使用者2024-01-24

    陣列必須在定義陣列的同時進行初始化。

    我還想問,你想通過這個程式實現什麼? 看起來有點小問題。

  10. 匿名使用者2024-01-23

    "12465fseszdfdxcorek"這是乙個常量,表示語句中字串的第乙個位址,char* a ="12465fseszdfdxcorek"這句話是給指標a賦值常量字串的第乙個位址,因為它是乙個常量,所以它的值不能改變,所以跑到句子*(a+i) = *(a+j)時會出錯。 通常,在將常量字串分配給指標時,應在指標上新增 st,以指示指標 a 不能修改指向字串的值。

    正確的做法是將字串儲存在陣列中,或者像這樣:

    char* a=new char[strlen("12465fseszdfdxcorek")+1];

    strcpy(a,"12465fseszdfdxcorek");

    請求乙個空間來儲存字串 new 通過,用 a 指向它,然後將字串複製到其中!

    樓下你錯了,你不知道strlen的原理,strlen就是從第乙個位址開始計算元素的數量,直到遇到空字元'\0'end,所以你可以使用strlen(a)!

  11. 匿名使用者2024-01-22

    似乎缺少乙個包含

    我寫道:只需將 char*a="12465fseszdfdxcorek";

    改為:char a[20]="12465fseszdfdxcorek";

    這樣做的原因是你宣告的字元 *a 只是乙個指向下乙個字串的第乙個位址的指標,而不是整個字串,所以 strlen() 無法返回它應該有的長度。

    好像和樓上差不多,已經編好了!

    建議送給樓上的那家,很不錯!

  12. 匿名使用者2024-01-21

    這是因為 char*a="12465fseszdfdxcorek";定義的字串是常量的方式,並且由於它是乙個常量,因此只能訪問它,而不能更改其值。 一樓不對,a是它的第乙個位址,這意味著你也可以這樣訪問它:char s=a[2]; 此時,s='4'。

    就這樣去做吧。

    char a[20] = "12465fseszdfdxcorek";

  13. 匿名使用者2024-01-20

    我想你。

    for(int i=0;我應該改為閱讀。

    for(int i=0;i

  14. 匿名使用者2024-01-19

    如果要修改字串的內容,請不要定義字元指標,而是修改字元陣列,如下所示:

    #include

    using namespace std;

    int main()

    cout <

  15. 匿名使用者2024-01-18

    一樓回答得很全面,變更程式應該從第乙個變更,可能會有很多錯誤,都是第乙個錯誤造成的,第一次變更背後的錯誤可能會消失。

  16. 匿名使用者2024-01-17

    沒辦法覆蓋,midlet類裡還有個方法就是抽象的,而且這裡你沒有實現,看錯誤提示應該是,我還沒做過j2me,不清楚。

  17. 匿名使用者2024-01-16

    程式沒有錯誤,也許是模擬器有問題,可以換個wtk版本試試。

  18. 匿名使用者2024-01-15

    你的編譯會通過嗎? Alt+1 實現未實現的方法。

  19. 匿名使用者2024-01-14

    最後乙個分號應該是半形; ,而不是中文全寬。

  20. 匿名使用者2024-01-13

    return 0;這個分號是中文符號,改成英文就行了。

相關回答
18個回答2024-08-12

同乙個外部變數在兩次函式呼叫期間保留其先前的值,這意味著放置在堆中的變數(全域性變數以及用靜態修飾的區域性變數都放置在堆中)不會在函式呼叫結束時被銷毀(函式中定義的區域性變數放置在堆疊中, 並且堆疊在函式呼叫完成後被銷毀,除非用 static 修改它),並且它的值將保持不變,直到它被函式重新分配。 >>>More

8個回答2024-08-12

三點: 1.if 語句後面的條件應該是取餘數,n%i==0 >>>More

8個回答2024-08-12

從**本身和執行情況來看,可執行程式的內容與貼上的**不匹配(可能是修改後沒有重新編譯,而修改前的**執行,否則不會**現在出現可以編譯傳遞的錯誤,例如第二行末尾有更多的“op”, 和“現有1人捐款無產出”),修改建議如圖所示:

5個回答2024-08-12

在你決定現在學習任何其他語言之前,你是否必須看看該語言的任何成功專案? 沒有必要只問C語言,因為世界上所有最重要的系統都必須有C語言。 例如,作業系統核心、基礎高階語言等。 >>>More

6個回答2024-08-12

float fahrenheit, celsius;宣告了兩個浮點資料華氏度和攝氏度 >>>More