2016-12-12 1 views
-3

Ich bin Anfänger in C++ - Programmierung und ich muss Programm machen, die N-Elemente in die Tabelle legt. Dann schreibt es die Anzahl der Elemente aus, die kleiner als ihr Durchschnitt sind. Hier ist mein Code in Codeblocks:C++ Programmierung, für und Durchschnitt

int n, average, elements=0; 
cout<<"Type n"<<endl; 
cin>>n; 
for(int i=0;i<n;i++) 

    int tab[n]; 
    int sum=0; 
    sum= sum+tab[n]; 
    average=sum/n; 
    if(tab[n]>average) 
     { 
     elements= elements+tab[i]; 



cout<<"Number of elements: "<<elements<<endl; 

return 0; 

Was ist los damit? Entschuldigung für mein Englisch.

+1

Sie scheinen eine Menge '{ 'und'}' zu fehlen. Bitte posten Sie den eigentlichen Code. – Barmar

+0

Was ist Ihre gewünschte Ausgabe und welche Ausgabe erhalten Sie? Stellen Sie eine vollständige Erklärung Ihres Problems zur Verfügung – Yousaf

+0

Sie benötigen zwei Schleifen. Die erste Schleife berechnet die Summe und berechnet daraus den Durchschnitt. Die zweite Schleife druckt die Elemente, die über dem Durchschnitt liegen. – Barmar

Antwort

0

kein Code ist voller Fehler:

1- Sie int tab [n] in einer Schleife zu erklären !!? Nach jedem Inkrement des Zählers der Schleife wird ein lokales Array erstellt.

2- Sie deklarieren auch Summe innerhalb der Schleife, so dass nach jedem Inkrement der Schleife Zähler Summe zurückgesetzt wird.

3- Sie lesen tab[n] Das ist ein UB, solange Sie über die Größe des Arrays lesen. weil das letzte Element tab [n - 1] ist; (weil das erste Element Tab [0] nicht Tab [1] ist)

4- Arrays haben eine konstante Größe zur Kompilierzeit. in Ihrem Fall funktioniert sogar Code ein paar Compiler, es ist nicht tragbar.

5- Sie verwenden die Array-Registerkarte, ohne sie zu initialisieren.

es zu korrigieren:

// int n; 
const int n = 5; 
int average, elements=0; 
cout<<"Type n"<<endl; 
// cin>>n; 
int tab[n]; 
int sum = 0; 

// initialize array to whatever you want. the thing don't use it without initializing it 
for(int i(0); i < 5; i++) 
    tab[i] = i * 10; 

for(int i = 0;i<n;i++) 
{    
    sum = sum + tab[i]; 
    average=sum/n; 
    if(tab[i] > average) 
    { 
     elements = elements + tab[i]; 
    } 
} 

cout<<"Number of elements: "<<elements<<endl;