
Adrenalin88
Mitglieder-
Gesamte Inhalte
16 -
Benutzer seit
-
Letzter Besuch
-
Arrayübergabe an Funktion, Tauschfunktion
Adrenalin88 antwortete auf Adrenalin88's Thema in C und C++
Funktioniert jetzt! Danke!- 6 Antworten
-
- array
- funktionsübergabe
-
(und 1 weiterer)
Markiert mit:
-
Arrayübergabe an Funktion, Tauschfunktion
Adrenalin88 antwortete auf Adrenalin88's Thema in C und C++
Ja das habe ich mir auch schon gedacht. Aber wenn ich das jetzt folgendermaßen mache: void exchange(int *a,int * { int temp; temp=*a; *a=*b; *b=temp; } und wie du schon sagtest die Adressen der Arrayelemente übergeben, sprich: exchange(&A,&A[min]); Dann spuckt der Compiler mir ne Warnung und ne Fehlermeldung aus: warning C4013: 'exchange' undefiniert; Annahme: extern mit Rückgabetyp int error C2371: 'exchange': Neudefinition; unterschiedliche Basistypen Was ist bitte daran falsch???- 6 Antworten
-
- array
- funktionsübergabe
-
(und 1 weiterer)
Markiert mit:
-
Arrayübergabe an Funktion, Tauschfunktion
Adrenalin88 antwortete auf Adrenalin88's Thema in C und C++
Ja, das habe ich mir auch gedacht, dass ich die Adressen der Arrayelemente übergebe. Nur was ich mich frage ist halt, ob der Funktionsrumpf überhaupt korrekt ist, sprich, muss ich dem Compiler klarmachen, dass es sich hierbei um Arrayelemente handelt also exchange(int *A[],int *B[]) ??? Ich weiss leider nicht, wie ich dem Compiler klar machen soll, dass es sich um Arrayelemente handelt.- 6 Antworten
-
- array
- funktionsübergabe
-
(und 1 weiterer)
Markiert mit:
-
Hallo zusammen, hier erstmal der Code: void selection_sort(int A[],int l,int r) { int i,j,min; for(i=l;i<r;i++) { min=i; for(j=i+1;j<=r;j++) { if(A[j]<A[min]) min=j; } exchange(A,A[min]); } } Ich muss noch die Funktion exchange erstellen. Aber irgendwie bekomme ich das nicht hin. Der Compiler gibt immer eine Fehlermeldung aus. Ich dachte mir folgenden Code, aber das klappt leider nicht: void exchange(int *A,int * { int temp; temp=*A; *A=*B; *B=temp; } Wäre nett, wenn mir einer da weiterhelfen könnte. Adrenalin88
- 6 Antworten
-
- array
- funktionsübergabe
-
(und 1 weiterer)
Markiert mit:
-
danke für den Hinweis .
-
Wäre nett, wenn du die Fehler nennen könntest. Denn ich sehe keine. Und wie gesagt, die Vektoren kann ich eingeben. Nur danach bei der Berechnung des Skalars überlastet das Programm.
-
ne, kein pseudocode. Ich habe alles eins zu eins vom Quellcode kopiert. Schon komisch, dass es bei dir klappt aber nicht bei mir.
-
Schade, dass keiner weiss wo der Fehler liegt. Aber trotzdem danke.
-
Habe keinen Schrägstrich im Projektnamen. Das war nur ein Pseudoname den ich eben angegeben hatte. IN echt steht dort WS0708.
-
Sorry, muss mich verbessern. Der Compiler startet das Programm schon, aber nachdem ich die beiden vektoren eingegeben habe, öffnet sich ein Fenster wo steht (WS 07/08.exe funktioniert nicht mehr) ("WS 07/08" ist der Name vom Projekt).
-
Jetzt vlt. ausführlicher . Habe das so eingegeben wie du es gesagt hast. Der findet keine Syntaxfehler aber der startet das Programm trotzdem nicht. Habe ich die Werte eventuell falsch übergeben?
-
Erstmal danke für die Antwort. ALso ich habe das jetzt wie folgt geändert: printf("Erster Vektor: "); scanf("%d %d %d",&veca[0],&veca[1],&veca[2]); printf("\nZweiter Vektor: "); scanf("%d %d %d",&vecb[0],&vecb[1],&vecb[2]); . Aber irgendwie klappt das trotzdem nicht?
-
Hallo zusammen, ich habe einen Fehler bei der Skalarmultiplikation von Zwei int-Vektoren. Leider finde ich ihn nicht. Vlt. kann mir einer von euch behilflich sein. #include <stdio.h> int scalar(int (*vec1)[],int (*vec2)[],int laenge) { int i,res=0; for(i=0;i<laenge;i++) { res=+ (*vec1) * (*vec2); } return res; } int main() { int veca[3],vecb[3],lenth=3,skalar; printf("Gib zwei Vektoren ein: \n"); printf("Erster Vektor: "); scanf("%d",veca); printf("\nZweiter Vektor: "); fflush(stdin); scanf("%d",vecb); fflush(stdin); skalar=scalar(veca,vecb,lenth); printf("Das Skalar lautet: %d\n\n",skalar); getchar(); return 0; }
-
Das Programm läuft nicht, obwohl keine Fehler vorhanden
Adrenalin88 antwortete auf Adrenalin88's Thema in C und C++
Ah ok. Danke -
Das Programm läuft nicht, obwohl keine Fehler vorhanden
Adrenalin88 antwortete auf Adrenalin88's Thema in C und C++
Aber wenn ich da nen %c anstatt nen %s mache, klappt das trotzdem nicht. Also: scanf("%s %s %s %c",liste[index].cname,liste[index].sname,liste[index].exam,liste[index].grade);