2013-12-18 3 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: для (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

Смежные вопросы