C Werte an andere Funktionen übergeben

kingd0x

Lt. Junior Grade
Registriert
Apr. 2015
Beiträge
258
Hallo,
kann mir bitte jemand möglichst auf "Anfänger-Niveau" erklären, wie ich aus einer Funktion Werte, die man über scanf bspw. eingelesen hat an andere Funktionen übergebe?

C:
int main(){
   
   
}


int Funktion1(){
    int zahl1, zahl2;
    printf("Zahl1: \n");
    scanf("%d",zahl1);
   
    printf("Zahl2: \n");
    scanf("%d",zahl2);
}

int Funktion2(){
   
   
}

Möchte bei Funktion1 Zahlen eingeben und in Funktion2 mit diesen Zahlen weiter rechnen und am Ende in main nur das Ergebnis ausgeben.
Nur wie übergibt man Zahlen an andere Funktionen?
 
Jemals bei Google nach "C programmieren tutorial" oder "C programmieren funktionen tutorial" gesucht?
http://www.c-howto.de/tutorial/funktionen/

C:
#include<stdio.h>

int addiere(int summand1, int summand2) {
    return (summand1 + summand2);
}

int main() {
    int summe = addiere(3, 7);
    printf("Summe von 3 und 7 ist %d\n", summe);
    return 0;
}
Das müsste dir eigentlich schon weiter helfen?
Am besten du ziehst dir auf youtube oder einem Blog oder irgendwo sonst mal ein einführendes Tutorial rein.
 
  • Gefällt mir
Reaktionen: kingd0x
Ist eigentlich ganz einfach, du musst die Funktion so deklarieren, das sie werte annimmt.
C:
int Funktion2() { // Nimmt keine Parameter an
}

int Funktion2(int x) { // Nimmt 1 parameter mit int an
}

Rechnen kannst du dann in etwa so

int Funktion2(int x, int y) {
 return x*y; // Multipliziere x mit y und geb den wert zurück
}
 
  • Gefällt mir
Reaktionen: kingd0x
Dein Quelltext leicht modifiziert. Das dürftest Du verstehen. Siehe auch die Kommentare:
C:
#include <stdio.h>

/*  Vorwärts-Deklararion der Funktionen :*/
int Funktion1(int werte[]); /* werte[] = "formaler Parameter" */
int Funktion2(int werte[]);

int main()
{
int summe;
int meine_zahlen[2];

Funktion1(meine_zahlen);
summe = Funktion2(meine_zahlen);
printf("Summe von %d und %d = %d\n",
         meine_zahlen[0], meine_zahlen[1], summe);

return 0;
}

int Funktion1(int w[]) /* w[] = "aktueller Parameter" */
{
int zahl1=0, zahl2=0;

printf("Zahl1: \n");
scanf("%d", &zahl1);

printf("Zahl2: \n");
scanf("%d", &zahl2);

w[0] = zahl1;
w[1] = zahl2;

return 2;
}

int Funktion2(int w[]) /* w[] = "aktueller Parameter" */
{
return w[0] + w[1];
}
 
  • Gefällt mir
Reaktionen: kingd0x
Noch ein kleiner Denkanstoß. Es ist Unsinn in einer Funktion 2 Mal das gleiche zu machen. Stattdessen liest du in der ersten Funktion nur eine Zahl ein, fürhrst die Funktion aber 2 Mal aus.
 
  • Gefällt mir
Reaktionen: kingd0x
blöderidiot schrieb:
Dein Quelltext leicht modifiziert. Das dürftest Du verstehen. Siehe auch die Kommentare:
C:
#include <stdio.h>

/*  Vorwärts-Deklararion der Funktionen :*/
int Funktion1(int werte[]); /* werte[] = "formaler Parameter" */
int Funktion2(int werte[]);

int main()
{
int summe;
int meine_zahlen[2];

Funktion1(meine_zahlen);
summe = Funktion2(meine_zahlen);
printf("Summe von %d und %d = %d\n",
         meine_zahlen[0], meine_zahlen[1], summe);

return 0;
}

int Funktion1(int w[]) /* w[] = "aktueller Parameter" */
{
int zahl1=0, zahl2=0;

printf("Zahl1: \n");
scanf("%d", &zahl1);

printf("Zahl2: \n");
scanf("%d", &zahl2);

w[0] = zahl1;
w[1] = zahl2;

return 2;
}

int Funktion2(int w[]) /* w[] = "aktueller Parameter" */
{
return w[0] + w[1];
}

Vielen Dank. So ist es für mich leicht nachvollziehbar.
 
Zurück
Oben