Kommando gesucht

D

Da1

Jungspund
Hallo
ich suche ein Kommando mit dem ich bei Eingabe a zu if(a), b zu if(b) .... komme. Gibt es da eine Möglichkeit? scanf scheint es nicht zu tun
oder muss ich komplett umbauen.

PHP:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>


int main() {

	char a,b,c,d;
	float y, x;
printf("Taschenrechner zur berechnung von Zahlen\n");
printf("________________________________________\n");

printf("(a)Plus (b)Minus (c)Mal (d)Geteilt: ");
scanf("%s,%s,%s,%s",&a,&b,&c,&d);

if(a){
   printf("gib die erste zahl ein: ");scanf("%f",&y);

   printf("gib die zweite zahl ein: ");scanf("%f",&x);
   printf("%f plus %f\n",y,x);
   printf("ergebnis %f\n",y+x);
}

if(b) {
   printf("gib die erste zahl ein: ");scanf("%f",&y);

   printf("gib die zweite zahl ein: ");scanf("%f",&x);
   printf("%f minus %f\n", y,x);
   printf("ergebnis %f\n",y-x);
}
if(c) {
   printf("gib die erste zahl ein: ");scanf("%f",&y);

   printf("gib die zweite zahl ein: ");scanf("%f",&x);
   printf("%f geteilt %f \n",y,x);
   printf("ergebnis %f\n",y/x);
}
if(d){
   printf("gib die erste zahl ein: ");scanf("%f",&y);

   printf("gib die zweite zahl ein: ");scanf("%f",&x);
   printf("%f mal %f\n",y,x);
   printf("ergebnis %f\n",y*x);
}
else{
  printf("falsche eingabe\n");}

return 0;
}
 
mahltid,

Um möglich beim Beispiel zu bleiben, wie wär es denn mit:

Code:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
[b]#include <ctype.h>[/b]

int main() {

    char a,b,c,d;
    float y, x;
printf("Taschenrechner zur berechnung von Zahlen\n");
printf("________________________________________\n");

printf("(a)Plus (b)Minus (c)Mal (d)Geteilt: ");
/* scanf("%s,%s,%s,%s",&a,&b,&c,&d); */

[b]switch( tolower(getch()) )[/b] {

case 'a' :
   printf("gib die erste zahl ein: ");scanf("%f",&y);
   printf("gib die zweite zahl ein: ");scanf("%f",&x);
   printf("%f plus %f\n",y,x);
   printf("ergebnis %f\n",y+x);
   break;

case 'b' : 
   printf("gib die erste zahl ein: ");scanf("%f",&y);
   printf("gib die zweite zahl ein: ");scanf("%f",&x);
   printf("%f minus %f\n", y,x);
   printf("ergebnis %f\n",y-x);
   break;

case 'c' :
   printf("gib die erste zahl ein: ");scanf("%f",&y);
   printf("gib die zweite zahl ein: ");scanf("%f",&x);
   printf("%f geteilt %f \n",y,x);
   printf("ergebnis %f\n",y/x);
   break;

case 'd' :
   printf("gib die erste zahl ein: ");scanf("%f",&y);
   printf("gib die zweite zahl ein: ");scanf("%f",&x);
   printf("%f mal %f\n",y,x);
   printf("ergebnis %f\n",y*x);
   break;

default :
   printf("falsche eingabe\n");
   break;
}

return 0;
}

... und wenn es schon C sein soll, denn bitte auch Prozedural, und nicht Top-Down :D
Und denk auch Mal darüber nach warum man den Heapstack für Variablen allozieren sollte, bevor man lustig ungepuffert auf den heap streamed...

mfg
 
Zuletzt bearbeitet:
Zum Beispiel:

Code:
#include <stdio.h>

int main( void )
{
	char act;
	
	printf( "(a)Plus (b)Minus (c)Mal (d)Geteilt: " );
	scanf( "%1c", &act );
	/* oder eben act = getchar(); */

	switch( act )
	{
		case 'a':
			printf( "Plus...\n" );
			break;
		case 'b':
			printf( "Minus...\n" );
			break;
		case 'c':
			printf( "Mal...\n" );
			break;
		case 'd':
			printf( "Geteilt...\n" );
			break;
		default:
			printf( "Unbekannte Aktion \"%c\".\n", act );
			return 1;
			break;
	}

	return 0;
}

//edit: OK, ich war zu langsam und getchar() geht natürlich auch. :)
 
Zuletzt bearbeitet:
Danke ich hab davor ewig mit disen sch* case rumprobiert habs aber dann wieder seien lassen und alles umgeändert weil ich die syntax nicht wusste.
 

Ähnliche Themen

C Code Hilfe!!! gesucht bei Dezimalzahl in Binärzahl for loop

Zugriff Ubuntu 16.04. auf Freigabe 18.04. LTS nicht möglich

Prozesskommunikation mit PIPES - wie funktioniert das?

Aufgabe in C

Queue für copy Script

Zurück
Oben