2013-12-18 42 views
0

我很新的編程C++,錯誤C2143(語法errot),C2065,c2109

我得到這些編譯器錯誤:

錯誤1個錯誤C2143:語法錯誤:缺少 ';'前「類型」
錯誤2錯誤C2065:進制':未聲明的標識符
錯誤3錯誤C2109:下標要求數組或指針類型
錯誤4錯誤C2065:進制':未聲明的標識符
錯誤5錯誤C2109:下標要求數組或指針類型

這裏是我的代碼:

#include <stdio.h> 
    int main(void) 
    { 
    int num, sum, i, e, n, avrg, numsnum, avrgu, chek; 
    sum = 0; 
    i = 0; 
    avrgu = 0; 
    chek = 0; 
    n = 0; 
    numsnum = 0; 
    int ary[5]; 
    e = 0; 

    do{ 
     scanf("%d", &num); 
     ary[n] = num; 
     n++; 
     i++; 
     sum += num; 
     numsnum++; 
    } while (i != 4); 

    avrg = (sum)/numsnum; 
    for (e = 0; e = 4; e++){ 
     if (ary[chek] > avrg){ 
      avrgu++; 
     } 
     chek++; 
    } 
    printf("%d numbers are above the AVERAGE of all.\n", avrgu); 


    return 0; 
    } 

在此先感謝!

+0

你在這裏輸入的代碼是錯誤的。你可以重新檢查並編輯它..? – bgamlath

+0

只需對發生錯誤的行發表評論。請?! :) – mihai

+0

錯誤1:行11 錯誤2:行16 錯誤3:行16 錯誤4:行25 錯誤5:行25 – user3113856

回答

1

我會建議你找到一些很好的入門C++教程。互聯網充滿了他們,只需在Google上快速搜索即可。這裏是我很快找到的一個:http://www.cprogramming.com/tutorial/lesson1.html

上面的代碼的問題是,您正在索引數組的末尾ary。這發生在您的for循環內部:for(e = 0; e = 4; e ++)。你的循環檢查分配e的值4.你可能打算做的是e == 4,但即使這樣也不完全正確。你想要做的是繼續循環,而e < 4

下面是你的代碼的修訂版本:

// C++ version of stdio.h 
#include <iostream> 

int main(int argc, char** argv) 
{ 
    // Create an array of five doubles and 
    // initialize all the doubles to 0 
    double array[5] = {}; 

    double num = 0; 
    double sum = 0; 
    double count = 5; 
    for (int i = 0; i < count; ++i) 
    { 
     // Read the user input from the console 
     std::cin >> num; 
     array[i] = num; 
     sum += num; 
    } 

    double average = sum/count; 

    int numbersAboveAverage = 0; 
    for (int i = 0; i < count; ++i) 
    { 
     if (array[i] > average) 
     { 
      numbersAboveAverage++; 
     } 
    } 

    // Print the numbersAboveAverage value to the console. 
    std::cout << numbersAboveAverage 
     << " numbers are above the average.\n" << std::endl; 

    return 0; 
} 

我會建議你做一些更多的閱讀,並確保你保持編程!學習的最好方法就是在做。我希望這有助於,歡呼!

+0

但它爲什麼會給我這個錯誤「錯誤錯誤C2143:語法錯誤:缺少';'在'輸入'第11行'之前? – user3113856

+0

不完全確定,因爲我在嘗試運行代碼時未收到該錯誤。如果我不得不猜測,我會說你在某處丟失了一個分號,或者你在變量聲明中拼寫了原始類型。 – pje

+0

@pje以及在運行之後試着放5個數字。每當我到達第五個數字時,我都會碰到這個問題。 – user3113856

相關問題