2 Aufgaben in C

Philippmode

Grünschnabel
Hi

Ich schreibe in 2 Wochen eine C++ Klausur und habe 2 Aufgaben bei denen ich nicht weiterkomme oder besser gesagt ich nicht weiß wie ich anfangen soll!!

Vielleicht kann mir ja ein netter Helfer dabei helfen!

Hier die erste

Es sei "feld" ein Array mit "s" Integerzahlen.
Schreiben Sie eine rekursive Funktion "sum", die die Summe der Zahlen als Rückgabewert liefert.
Als Eingabeparameter erhält die Funktion "feld" und "s".


und dies ist die zweite

Schreiben Sie eine Funktion "loesche( s,c )", die alle Vorkommen des Zeichens "c"
im String "s" löscht.
Der Resultatstring wird im Parameter "s" zurückgegeben.



Wäre um jede Hilfe dankbar.

LG
Phil
 
Das sind standart Aufgaben, schau dich mal bei google um! Oder auch hier, findest du alle Lösungen!

Gruß XeoX
 
;)

C++:
#include <iostream>
#include <string>

using namespace std;

// Aufgabe 1 (Funktion)

int sum(int feld[], int s) {
       
       int r = 0;
       
       for(int i = 0; i < s; i++) {
               
               r += feld[i];
               
               
               }
       
       return r; 
       
       }

// Aufgabe 2 (Funktion)

string loesche(string s, string c) {
    
    return s.replace(s.find(c,0), c.length(), "");
    
    }

int main() {

// Aufgabe 1

    int arr[] = {44,55};
    
    cout << sum(arr,sizeof(arr)/4) << endl;

// Aufgabe 2

    cout << loesche("Das ist ein guter Text", "Text") << endl;
    system("PAUSE");
    EXIT_SUCCESS;
    
    }
 
Zuletzt bearbeitet:
Setzen! 6. :(

Es bringt recht wenig wenn du die Lösung hier einfach so angibst, vor allen Dingen wenn die Lösung selbst falsch ist.

Ihr solltet euch erstmal informieren, was "rekursive" Funktionen sind. Und wie man in einem Parameter ein Ergebnis zurückgibt (Stichwort: call by reference, "Ausgabeparameter").

@Philippmode: Hier wird einem geholfen wenn man etwas Eigenitiative erkennen kann. Das hier ist kein Hausaufgabenservice. Versuch erstmal ein Programm und stell es hier rein. Formuliere wo du Schwierigkeiten hast und frage was dir unklar ist.

@XeoX: Standard schreibt man mit d!

Gruß
 
  • Gefällt mir
Reaktionen: KD3
erstmal vielen Dank für eure Mühe aber um mal auf Hausaufgaben zurück zu kommen. Aus dem Alter bin ich raus ^^
Es geht hier um alte AP Klausuraufgaben die ich nicht herleiten kann oder sagen wir besser so richtig verstehe.

Nun mal zu dem Code hier:

;)

C++:
#include <iostream>
#include <string>

using namespace std;

// Aufgabe 1 (Funktion)

int sum(int feld[], int s) {
       
       int r = 0;
       
       for(int i = 0; i < s; i++) {
               
               r += feld[i];
               
               
               }
       
       return r; 
       
       }
    
    }

Also das ist nicht richtig, da du durch return r keine rekursive Funktion auslöst sondern nur das zurückgibst. Außerdem ist die Initialisierung mit r=0 laut deinem Programm nicht möglich, da ich sobald die Methode erneut aufgerufen wird r erstmal wieder auf 0 setze.

Hier mal mein Lösungsansatz.
Code:
int sum(int feld[], int s) {
       
while (s>0){
ergebniss += feld[s] 
       s--;

return sum(ergebniss, s)
       }

Obwohl das eigenltich auch schwachsinn ist, da ergebniss nirgends intialisiert wurde und ich das ergebniss zurückgebe obwohl die Rückgabe ein Arraytyp seien muss.

Aber ich weiß nicht wie ich das Problem lösen soll
 
Hier mal mein Lösungsansatz.
Code:
int sum(int feld[], int s) {
       
while (s>0){
ergebniss += feld[s] 
       s--;

return sum(ergebniss, s)
       }

Obwohl das eigenltich auch schwachsinn ist, da ergebniss nirgends intialisiert wurde und ich das ergebniss zurückgebe obwohl die Rückgabe ein Arraytyp seien muss.

Aber ich weiß nicht wie ich das Problem lösen soll
Was uns wieder zurück auf rekursive Funktionen bringt. Was hat denn da die Schleife in einer rekursiven Funktion zu suchen?

Tipp: Die Summe eines Feldes a von n+1 Elementen berechnet sich aus der Summe des n+1-ten Elementes von a und der Summe des restlichen Feldes a von n Elementen.

Gruß

PS: Bitte verwende die entsprechenden Code-Tags für Code den du postest!
 
Da ja offensichtlich nicht klar ist, was eine rekursive Funktion ist: Das ist eine Funktion, welche sich selbst aufruft.

Soll bei der 2. Aufgabe tatsächlich ein std::string verwendet werden? Oder soll man das std::string::replace(...) vielleicht selber nachprogrammieren?
 
Zuletzt bearbeitet:
Zurück