Hallo,
ich schreibe demnächst eine Prüfung und ich habe hier paar Aufgaben zum lernen.
Doch irgendwie verwirrt mich zwei Aufgaben extrem die aber eigentlich total einfach sein sollten.
1. Problem:
Aufgabenstellung: #define XY(a)((a)*(a)+(a)) char vBuf[128]; Was geschieht bei dem Ausdruck: erg=XY(atoi(fgets(vBuf, 128, stdin)); ?
Meine Erklärung:
Als erstes definieren wir ein Marko. Anschliesend ein char namens vBuf welches 128 groß ist.
Danach soll durch einlesen über die stdin (Konsole in diesem Fall) vBuf mit Werten belegt werden die anschließend von char zu int Konvertiert werden. Anschließend wird das Marko Belegt mit dem Wert der eingegeben wurde. Das Ergebnis vom Marko wird anschließend in das int Element erg gespeichert.
Bsp:
a wird mit 2 Belegt.
2*2+2=6
Jetzt habe ich mir ein Programm dazu geschrieben. Das Fragt mich aber nach 3 Parametern und gibt was völlig falsches aus.
Warum?
#include <stdio.h> #include <stdlib.h> /* run this program using the console pauser or add your own getch, system("pause") or input loop */ #define XY(a)((a)*(a)+(a)) int main(int argc, char** argv) { char vBuf[128]; int erg; erg= XY(atoi(fgets(vBuf, 128, stdin))); printf("%d", erg); return 0; }