Clanintern Clanintern Clanintern

Forum

Öffentliche Foren
FORUM: Spiele & Computer THEMA: Werteübergabe in C
AUTOR BEITRAG
Earth - Däääh

RANG Deckschrubber

#1 - 27.05 11:14

Hi Leute,

habe folgendes Programm geschrieben dass Werte an eine Funktion/Prozedur übergeben soll:

code:

#include <stdio.h>
#include <string.h>


void rechenwerk(char* zahl_1, char* zahl_2, char operation, int stellen, int zweierkomplement){

printf("\nZahl 1: %s",zahl_1);
printf("\nZahl 2: %s",zahl_2);
printf("\nRechenoperation: %c",operation);
printf("\nAnzahl der Stellen: %d",stellen);
printf("\nZweierkomplement anwenden: %d",zweierkomplement);

}


int main(void){

int stellen,zweierkomplement;
char zahl_1[100],zahl_2[100],operation;

printf("\n1.Binaerzahl eingeben:");
gets(zahl_1);
printf("2.Binaerzahl eingeben:");
gets(zahl_2);
printf("Rechenoperation eingeben:");
operation=getchar();
printf("Anzahl der Stellen eingeben:");
scanf("%d",stellen);
printf("Zweierkomplement anwenden? (0=NEIN , 1=JA):");
scanf("%d",zweierkomplement);

rechenwerk(zahl_1, zahl_2, operation, stellen, zweierkomplement);

}


Zahl1,Zahl2 und Rechenoperation werden richtig ausgegeben, allerdings erhalt ich bei der Ausgabe für "Anzahl der Stellen "14616" anstatt 20 und bei Zweierkomplement anwenden: anstatt 0 bzw. 1 die Zahl "317620"

Wo mache ich hier den Fehler bei der Übergabe?
SirLant

RANG Sucker

#2 - 27.05 11:21

Du liest mit scanf() ein übergibst scanf aber keine Zeiger auf deine Variablen sondern deren Wert.

So gehts:
scanf("%d",&stellen);
Earth - Däääh

RANG Deckschrubber

#3 - 27.05 11:26

Danke für die schnelle Antwort. Bin wohl wieder auf nen Anfängerfehler drauf reingefallen....
giDDl *{empty}*

RANG Ober0wn3r

#4 - 31.05 20:19

nicht zwangsläufig, denn ich geh mal nicht davon aus, dass ein anfänger auf anhieb zeiger versteht