Häufigkeit in einem Array finden
-
hallo
dein array kann als index locker einen wert eines anderen arrays annehmen, so wie ich es zeigte.
teste es einfach mal.es passt übrigens perfekt zu deinem lernlevel. ihr hattet schließlich arrays. vermutlich sollt ihr auf eine solche lösung selbständig kommen.
so long
-
Danke
-
#include <iostream.h> #include <stdio.h> #include <conio.h> void untersuchen(int a3[10], int a4[10], int a5[10]) { int zaehler=0; int counter=1; cerr<<"A"; for(int a=0; a<10; a++) { cerr<<"B"; //************************************ if(a4[zaehler] != a3[a]) for(int b=1; b<10; b++) { if(a3[a] == a3[b]) a4[zaehler] = a3[b]; a5[zaehler] = ++counter; zaehler++; } //************************************ } cerr<<"C"; } int main() { int a1[10] = {7,3,5,2,8,2,9,2,4,2}; int a2[10] = {11,11,11,11,11,11,11,11,11,11}; int a6[10]; cout<<"\nDie Zahlen werden untersucht"; untersuchen(a1,a2,a6); for(int x=0; x<11; x++) { cout<<"\nZahle: "<<a1[x]<<"\tHäufigkeit: "<<a2[x]; } return 0; }
Weisst du warum da Programm nicht geht ?
Ist dringend
-
Wenn ich nicht ganz falsch liege, übergibst Du die Arrays als Kopie an die Funktion untersuchen. Darin werden sie geändert und gehen dann verloren, wenn die Funktion durchgelaufen ist.
Hattet ihr schon Referenzübergabe an Funktionen? Damit übergibst Du nur die Adresse des Arrays und arbeitest dann in der Funktion mit dem Original weiter.Gruß,
MTE.
-
Kannst du das Program zum Laufen bringen ?
Schreibe das Programm mal zu Ende.so das es geht.
Referenzen hatten wir auch.Aber wenn es auch ohne geht wäre das nicht schlecht.
-
also wenn ich richtig verstanden habe was du haben willst (also zahlen von 1-10) sind in nem array und in dem anderen 10er array sollen die häufigkeiten dieser zahlen stehen dann funzt das doch so wie ich dir gepostet hab
#include <iostream> template <class T>void hanzal(T *a1,T* a2,int n){for(;--n+1;++a1)++a2[*a1-1];} int main(){ int a1[10]={3,2,4,1,5,6,7,8,6,1}; int a2[10]={0,0,0,0,0,0,0,0,0,0}; hanzal(a1,a2,10); for(int i=0;i<10;++i)std::cout<<a2[i]<<std::endl; }
-
menno, wieso machst du es nicht wie gesagt?
letzer versuch, dir das zu sagen:
array 1: zum bleistift
3 3 3 7 7 3 3 3 3 7
array 2: obere reihe der index, unten die initialisierung mit null
0 1 2 3 4 5 6 7 8 9 (index)
0 0 0 7 0 0 0 3 0 0 (inhalt an index)deswegen immer beim finden eins hochzählen, vorher auf 0 stellen.
a2[ a1[y] ] ++;
so. eine schleife bauen.. da hast du ja schon zur genüge
-
#include <iostream> using namespace std; //Erstellen sie ein Programm das ein Array mit 10 Elementen Initi 0-10. //die Häufigkeit der Zahlen 1-10 sollen ermittlet, in einem weiterem Array gespeichert und //anschließend ausgegeben werden. int main() { //eingabe //eringabe gespart, habe einfach feste werte genommen. int zahlen[10]={7,3,5,2,8,2,9,2,4,2};//index von 0 bis 9 //verarbeitung int count[12]={0,0,0,0,0,0,0,0,0,0,0};//index von 0 bis 11, //die 0 wird nicht benutzt, sondern ich benutze nur 1 bis 11 for(int i=0;i<10;i=i+1)//schleife läuft von 0 bis 9 { int zahl=zahlen[i];//zahl liegt zufällig zwischen 1 und 10 count[zahl]=count[zahl]+1;//das hier ist elises trick! } //ausgabe cout<<"zahl"<<'\t'<<"anzahl"<<endl; for(int zahl=1;zahl<11;zahl=zahl+1)//schleife läuft von 1 bis 10 { cout<<zahl<<'\t'<<count[zahl]<<endl; } return 0; }
-
count[zahl]=count[zahl]+1;//das hier ist elises trick!
*lol*
hört sich ja fast so an als ob sie/er was völlig neues erfunden hätte... das schreit ja danach sich das patentieren zu lassen um von jedem der das verwenden will Kohle abzugreifen:D
-
au ja... leider hat mein algorithmenprof dann sicher was dagegen
dabei wäre geld grad nett
-
ehre, wem ehre gebührt.
-
#include <algorithm> int main(int argc, char* argv[]) { int zfszahlen[10]={7,3,5,2,8,2,9,2,4,2}; int co[10]; for(int i=0;i<10;i++) { co[i]=count(zfszahlen,zfszahlen+10,i+1); cout << i+1 << " " << co[i] << endl; } return 0; }
-
Dieser Beitrag wurde gelöscht!