Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Theoretische Informatik » C -Code » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen C -Code
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Tim45
unregistriert
C -Code Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Meine Frage:
Hallo,

ich muss diesen Code verbessern, aber weiß nicht wie.
#include<stdio.h>
int f1(int, int);
int main ()
{
int a = 5, b = 6;
printf("a+b=%d \n", f1(a,b));
printf("a+b=%d \n", f2(a,b));
printf("a+b=%d \n", f3());
return 0;
}
int f1 (int a, int b)
{
return a+b;
}
int f2 (int a, int b)
{
int a = 3, b = 2;
return a+b;
}
int f3 ()
{
return a+b;
}


Meine Ideen:
Ich hab leider keine Ideen. Ich weiß nur, dass a und b redeklariert werden. Aber nicht wie ich das Problem löse.
04.03.2014 22:45
marie m
Eroberer


Dabei seit: 08.06.2013
Beiträge: 57

RE: C -Code Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hallo!
In der f2 werden a und b doppelt deklariert und in f3 werden sie gar nicht deklariert.
Vor der main() hast du nur die Funtion f1 deklariert.

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von marie m: 05.03.2014 03:02.

05.03.2014 03:02 marie m ist offline Beiträge von marie m suchen Nehmen Sie marie m in Ihre Freundesliste auf
Tim45
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

hab das jetzt mal verbessert, aber immer noch ein Problem mit Funktion 2, was kann ich da machen? Hab die werte nämlich jetzt einfach nur entfernt...
#include<stdio.h>
int f1(int, int);
int f2(int, int);
int f3 ();
int main ()
{
int a = 5, b = 6;
printf("a+b=%d \n", f1(a,b));
printf("a+b=%d \n", f2(a,b));
printf("a+b=%d \n", f3());
return 0;
}
int f1 (int a, int b)
{
return a+b;
}
int f2 (int a, int b)
{

return a+b;
}
int f3 (int a, int b)
{
return a+b;
}
05.03.2014 09:28
Karlito Karlito ist männlich
Kaiser


Dabei seit: 11.04.2011
Beiträge: 1.461

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hallo,

ich habe deinen Code mal kommentiert.

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
#include<stdio.h>
int f1(int, int);
int f2(int, int);
int f3 (); //Wenn die Implemntierung von f3 zwei Parameter enthält
           //Dann muss dies im Prototypen auch so sein
int main ()
{
	int a = 5, b = 6;
	printf("a+b=%d \n", f1(a,b));
	printf("a+b=%d \n", f2(a,b));
	printf("a+b=%d \n", f3()); //f3 ist durch den Prototypen zwar deklariert
	                           //aber nirgendwo implementiert. Die Implementierung 
	                           //fordert 2 Parameter (int a, int b)
	return 0;
}
int f1 (int a, int b)
{
	return a+b;
}
int f2 (int a, int b)
{
	return a+b;
}
int f3 (int a, int b) //ist in main nicht bekannt, da der Prototyp anders deklariert ist
{
	return a+b;
}


VG,

Karlito
05.03.2014 14:27 Karlito ist offline E-Mail an Karlito senden Beiträge von Karlito suchen Nehmen Sie Karlito in Ihre Freundesliste auf
Tim45
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

danke erst mal.
ist es eigentlich erlaubt hier a = 3 und b= 2 zu entfernen?
und bei mir kommt jetzt überall a+b=11 raus. hab das was du mir kommntiert hast schon verbessert

int f2 (int a, int b)
{
int a = 3, b = 2;
return a+b;
}
05.03.2014 14:35
Karlito Karlito ist männlich
Kaiser


Dabei seit: 11.04.2011
Beiträge: 1.461

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hallo Tim45,

Zitat:
Original von Tim45
ist es eigentlich erlaubt hier a = 3 und b= 2 zu entfernen?


Die Aufforderung das Programm zu verbessern lässt viel Raum für Interpretationen. Prinzipiell spricht erstmal nichts dagegen, die Neudeklaration und Wertezuweisung zu entfernen. Damit nicht einfach nur 3 mal das selbe da steht, würde ich an deiner Stelle das Programm ein wenig modifizieren. Also kannst du zum Beispiel in f2 a*2 + b*3 berechnen und in f3 einfach 25^2 oder eine Zufallszahl ausgeben (dafür keinen Parameter annehmen, also f3 als f3() belassen). Dementsprechend würde ich noch die Ausgabe durch printf anpassen.

VG,

Karlito
05.03.2014 14:46 Karlito ist offline E-Mail an Karlito senden Beiträge von Karlito suchen Nehmen Sie Karlito in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Theoretische Informatik » C -Code