brauche hilfe c anfänger.....
-
Hallo,
ich soll ein Prgramm schreiben.
Es Soll 2Hoch n rechnen.
Der User soll einen Wert eingeben.
Zum Beispiel 3.
Dann rechnet der Rechner 2³.
Das Ergebnis soll in einem Festspeicher auf dem Rechner gespeichert werden.
Das Ergebnis soll dann dem User ausgegeben werden und der User soll gefragt werden, ob er erneut etwas rechnen will.wie sieht der Text in C programmiert aus?
vllt könnt ihr mir ja helfen.
gruß mio
-
wie schaut dein ansatz aus?
da sind unten immer noch kleine beispiele dabei
http://www.cplusplus.com/reference/clibrary/cstdio/scanf/
http://www.cplusplus.com/reference/clibrary/cmath/pow/
http://www.cplusplus.com/reference/clibrary/cstdio/printf/lg lolo
-
huch das darf natürlich in der sammlung nicht fehlen
http://www.cplusplus.com/reference/clibrary/cstdio/fprintf/lg lolo
-
Können schon, aber warum sollten wir, wenn du gar nichts von deinen programmiertechnischen Grundlagen zeigst?
Wie wäre es mit ein wenig Quelltext? Geb dir ein wenig Mühe und schau mal in deinen bisherigen Unterlagen - da wird nichts wesentlich Neues verlangt sondern nur ein paar Zeilen mehr.
Da war jemand schneller
-
Versuch's mal so:
#include <stdio.h> #include <ctype.h> int write(int i) { return i ? write(i / 10), putchar(i % 10 + '0') : 0; } int read(int i) { int c; return isdigit(c = getchar()) ? read(i * 10 + c - '0') : i; } int main(void) { write(1 << read(0)); }
-
Ich weiss ja nicht was für Randbedingungen du hast, aber dein Code ist nicht ganz einfach und funktioniert auch nur bei 2^n.
Wie wäre es mit sowas?#include <stdio.h> #include <math.h> int main(void) { int Eingabe ,Ausgabe; scanf("%d",&Eingabe); Ausgabe=pow(2,Eingabe); printf("%d",Ausgabe); return (0); }
-
Da ja in der Aufgabe was von Schleife steht, denke ich der Source mit
math.h
ist hier nicht gefragtAber das nur aus der zugegebenermassen trüben Kristallkugel
-
Mal darüber nachgedacht: 'Potenzieren heisst mehrfaches Multiplizieren auf einer gegebenen Basis'? Hat mit einer Programmiersprache wie C wenig zu tun! :p
-
berniebutt schrieb:
Mal darüber nachgedacht: 'Potenzieren heisst mehrfaches Multiplizieren auf einer gegebenen Basis'?
Das hängt von den Typen ab, für die du sie definieren möchtest.
-
danke für die antworten. mein programm läuft jetzt. doch wie kann ich die ausgegebenen ergebnisse in einer datei auf dem rechner speichern?
-
noobLolo schrieb:
huch das darf natürlich in der sammlung nicht fehlen
http://www.cplusplus.com/reference/clibrary/cstdio/fprintf/lg lolo
hast da überhaupt mal nen blick reingeworfen oder hat dich die tabelle am anfang abgeschrekt
lg lolo
-
reingeguckt schon aber ich raff es echt net
-
dann zeig doch mal was du aus dem beispiel gemacht hast...
-
vllt ein bisschen umstädnlich aber naja macht was ich will...
#include <stdio.h> // Bibliothek
#include <stdlib.h> // Bibliothekint main(int argc, char *argv?)
{
int Hoch ,Ausgabe ,Eingabe; // Deklarationprintf("Bitte geben Sie eine Hoch-Zahl ein : "); // Ausgabe
scanf("%d",&Hoch); //Auslesung der Daten
Ausgabe=pow(2,Hoch); // Rechnung 2 Hoch n
printf("Das Ergebis betraegt: %d\n",Ausgabe); // Ausgabe des Ergebnissesprintf("\nDas Program nochmal starten?\nWenn ja eine 1 eingeben, wenn nicht eine andere Zahl eingeben .\nEingabe:",Eingabe); // Ausgabe Programm nochmal starten? Eingabe 1 oder andere Zahl
scanf("%d",&Eingabe); // Auslesung der Daten
while(Eingabe==1) // Wenn Eingabe = 1 Programm startet neu. Wenn eine andere Zahl eingegeben wird ist das Programm zu Ende(while-Schleife)
{
printf("Bitte geben Sie eine Hoch-Zahl ein : ");
scanf("%d",&Hoch);
Ausgabe=pow(2,Hoch);
printf("Das Ergebis betraegt: %d\n",Ausgabe);printf("\nDas Program nochmal starten?\nWenn ja eine 1 eingeben, wenn nicht eine andere Zahl eingeben .\nEingabe:",Eingabe); // Eingabe
scanf("%d",&Eingabe); // Auslesung der Daten
}printf("\nDas Program ist zu Ende!\n"); // Ausgabe Programm Ende
system("PAUSE");
return 0;
}
-
miokay schrieb:
vllt ein bisschen umstädnlich aber naja macht was ich will...
...Mach's lieber so, dann funktioniert's auch:
#include <stdio.h> #include <math.h> int read_int(int *p) { int c, count = scanf("%d", p); while ((c = getchar()) != '\n') ; return count; } int main(void) { int Hoch, Ausgabe, Eingabe; do { do printf("Bitte geben Sie eine Hoch-Zahl ein: "); while (read_int(&Hoch) < 1); Ausgabe = pow(2, Hoch); printf("Das Ergebis betraegt: %d\n", Ausgabe); do printf("Das Program nochmal starten?\n" "Wenn ja eine 1 eingeben, wenn nicht eine andere Zahl " "eingeben.\n" "Eingabe: "); while (read_int(&Eingabe) < 1); } while (Eingabe == 1); printf("\nDas Program ist zu Ende!\n"); return 0; }
Jetzt musst du nur noch herausfinden, wie man Dateien schreibt. Lies mal hier weiter:
http://www.java2s.com/Code/C/File/Openafilehowtousefopen.htmWahrscheinlich willst du aber fprintf() statt fputs() verwenden.
-
miokay schrieb:
danke für die antworten. mein programm läuft jetzt. doch wie kann ich die ausgegebenen ergebnisse in einer datei auf dem rechner speichern?
Dafür brauchst du eine Datei, in die die Ergebnisse hineingeschrieben werden. In ANSI-C ist das etwas umständlich gelöst. In C++ sehr viel einfacher mit den dort verfügbaren stream-Klassen. Allein diese Aufgabe könnte den Einstieg nach C++ lohnen.
-
Und wenn du es doch lieber in einer Schleife berechnen willst:
...
int ergebnis = 1; printf("Bitte Hochzahl angeben: "); scanf("%d", &potenz); for ( i = 1 ; i <= potenz ; i++) { ergebnis = ergebnis * 2; } printf("2 hoch %d ergibt: %d \n", potenz, ergebnis);
...