2016-04-20 12 views
-3
#include <stdio.h> 
int main() 
{ 
    int marks[40] = {83, 86, 97, 83, 93, 83, 86, 52, 49, 41, 42, 47, 90, 59, 63, 86, 40, 46, 92, 56, 51, 48, 67, 49, 42, 90, 42, 83, 47, 95, 69, 82, 82, 58, 69, 67, 53, 56, 71, 62}; 

    int i,j,count[101],tm; 

    for(i=0;i<101;i++) 
    { 
     count[i]=0; 
    } 

    for(i=0;i<40;i++) 
    { 
     tm=marks[i]; 
     count[tm]=count[tm]+1; 
    } 

    for(i=0;i<=100;i++) 
    { 
     if(count[i]!=0) 
     { 
      printf("Marks: %d count: %d\n",i,count[i]); 
     } 
    } 

    return 0; 
} 

Dies ist mein Code. Ich habe das hier nicht verstanden.Ich habe nicht verstanden, was passiert mit int Array in meinem Code

enter image description here

erste i=0, marks[i], marks[0] bedeutet marks[0]=83 so tm=marks[0]=83 und dann count[tm]=count[tm]+1; Und ich habe nicht in dieser Linie verstehen.

+4

Aktualisierung des Histogramms (Häufigkeitstabelle). Was denkst du sonst noch? –

+1

Was versuchst du zu tun? – Boiethios

+0

Entschuldigung, ich verstehe deine Frage nicht. – asad

Antwort

1

Ich habe Ihrem Code einige Kommentare hinzugefügt, damit Sie leichter verstehen können, was passiert.

#include <stdio.h> 

int main(void) // use void if your function has no parameters 
{ 
    int marks[] = {83, 86, 97, 83, 93, 83, 86, 52, 49, 41, 42, 47, 90, 59, 63, 86, 40, 46, 92, 56, 51, 48, 67, 49, 42, 90, 42, 83, 47, 95, 69, 82, 82, 58, 69, 67, 53, 56, 71, 62}; // you can leave out the array size if you instantiate it afterwards 

    int i, tm; // j is never used, so leave it out 
    int count[101]; // count[i] tells you in the end how often the mark i occured in the marks array 

    for(i=0; i < 101; i++) // initialize the count array with zeros 
    { 
     count[i]=0; 
    } 
    for(i=0;i<40;i++) // loop over the marks array and increment thhe count array at the current mark position by one 
    { 
     tm=marks[i]; 
     count[tm]=count[tm]+1; // increment the count of mark i by one 
    } 
    // marks[i] tells you how often i appears in the marks array -> marks is a frequency table 
    for(i=0;i<=100;i++) // print out how often a mark appeared, but only if it appeared at least once 
    { 
     if(count[i]!=0) 
     { 
      printf("Marks: %d count: %d\n",i,count[i]); 
     } 
    } 
    return (0); 
} 
+1

'count [tm] = zählen [tm] +1;// increment die Zählung von Mark i by one "Wie ist dieser Kommentar hilfreich? Dies ist völlig überflüssig. Viele Leute, die nicht einmal den' C' Dialekt verstehen, würden es bekommen. –

+0

@MohitJain Für mich scheint es, dass es neu ist in C Vielleicht dachte ich, dass es hilfreich für ihn wäre, eine abstraktere Beschreibung dessen hinzuzufügen, was der Code macht. – jboockmann

0

Diese beiden Linien

tm=marks[i]; 
count[tm]=count[tm]+1; 

wie folgt vor:

  1. den Wert in marks[i]
  2. speichern die in 1 in tm
  3. gezogen Wert gespeichert bekommen und Wert von count[tm]
  4. hinzufügen 1 zu dem, was in 3.
  5. speichern das Ergebnis der Addition erfolgt in 4 in count[tm] und überschreibt den Wert, der in 3 gezogen worden war ..

Durch die Zugabe von 1 in Mitleidenschaft gezogen worden war, Schritt 4, Sie zählen die Anzahl der Vorkommen einer bestimmten Marke.

Verwandte Themen