Zeige Beiträge 1 bis 7 von 7 Treffern |
|
Thema: Aufgabe für Schleifen in C |
|
Das ist der "PÄDAGOGISCHE" Ansatz meines Dozenten. Wir hatten davor auch eine Aufgabenstellung, die man normalerweise mit Schleifen lösen müsste. Und wir mussten es mit if/else lösen, was zu einem monströsen grauenvollen Apparat geführt hat...ich war da schon am verzweifeln.
Ja er will das so....vielleicht dient es auch nur zur Abschreckung, keine Ahnung.
Es ist unsinnig, denn wenn man 100 Zahlen eingeben sollte, müsste man dann 100 Variablen definieren???
Er will eben haben, dass man mit unzureichenden Mitteln irgendwie diese Aufgabenstellung löst.
LEIDER
ps
Man sollte dort jemanden Auffordern eine Zahl einzugeben, die entweder eine ganze oder eine Kommazahl sein sollte. Dann sollte man die Zahl wieder ausgeben....aber eben mit der genauen Nachkommastelle!!!!
Erlaubt war nur IF !
Programmier das mal, das ist schlimm. Einzig, dass man bei 4 Nachkommastellen runden durfte (also nicht noch weitere Nachkommastellen ausgeben musste) Musterlösungen gibt s nicht...die findet er doof.
Wer also nicht auf die Lösung kommt, kann es sonstwo suchen.
|
|
Thema: Aufgabe für Schleifen in C |
|
Also wenn man vor der Schleife
int zahl1, zahl2.....,zahl10; deklariert.
Und dann diese 10 Variablen in der Schleife auf folgende weise einbaut
for(i=1; i<11; i= i+1)
{
........
if(i==1){
zahl1 = zahl;
}else if(i==2{
zahl2 = zahl;
}.....usw
}
printf("Die 1. Zahl war %d\n", zahl1);
printf("Die 2. Zahl war %d\n", zahl2);
...
dann wird tatsächlich es so ausgegeben, wie von der Aufgabenstellung gefordert.
Nur das mit den Pfeilen beim Max und Min, da weiß ich einfach nicht wie ich das machen soll???
|
|
Thema: Aufgabe für Schleifen in C |
|
Wir haben Arrays noch nicht besprochen. Ich bin noch ziemlich am Anfang des Studiums.
Ja.."Anweisungen" ist nicht passend.
Ich soll die Aufgabe nur mit Schleifen oder Kontrollstrukturen lösen.
Ich dachte schon, einfach zusätzlich 10 Variable zu deklarieren, um bei jedem Durchlauf dann eine zu benutzen...ob das sinnvoll ist, weiß ich nicht.
|
|
Thema: Aufgabe für Schleifen in C |
|
vielen Dank für deine Hinweise.
Nur leider darf ich keine anderen Anweisungen verwenden als for, while , do-while. bzw if/ else.
Deswegen darf ich keine arrays verwenden.
|
|
Thema: Aufgabe für Schleifen in C |
|
a-Die Aufgabenstellung ist: Man soll den Benutzer 10 ganze Zahlen eingeben lassen.
b-Direkt danach sollen die eingegebenen Zahlen (quasi als Kontrollausgabe) wieder ausgegeben werden.
c-Es soll sowohl das Maximum als auch das Minimum ermittelt werden.
Dieses soll dann bei der Kontrollausgabe kenntlich gemacht werden.
d-Danach soll die Summe der Zahlen ermittelt werden.
e-Zum Schluss soll der Durchschnitt ausgegeben werden.
z.B. so:
Bitte geben Sie 10 ganze Zahlen ein.
Die 1. Zahl ist: 3
Die 2. Zahl ist: 5
Die 3. Zahl ist: -4
....
....
Die 10. Zahl ist: 12
Die 1. Zahl war 3
Die 2. Zahl war 5
Die 3. Zahl war -4 <---ist das Minimum
.....
Die 10. Zahl war 12<---ist das Maximum
Die Summe der Zahlen ist 21
Der Durchschnitt ist 2.1
Jeder Teil ist für sich genommen nicht so schwer - nur alles zusammen zu bringen,
macht mich ratlos.
Also einen Teil kann ich problemlos lösen:
php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
|
#include <stdio.h>
int ()
{
double schnitt = 0;
int max = 0, min = 0, summe = 0, i = 0, zahl = 0;
printf("Bitte geben Sie eine ganze Zahl ein\n");
for(i = 1; i < 11; i = i + 1)
{
printf("Die %d. Zahl: ", i);
scanf("%d", &zahl);
summe = summe + zahl;
}
schnitt = (summe*1.) /10;
printf("Die Summe der Zahlen ist %d\n", summe);
printf("Der Durchschnitt lautet %.1f\n", schnitt);
return 0;
} |
|
Damit habe ich
a-
d-
und e-
gelöst.
Nur wie kann ich die Kontrollausgabe lösen??
Denn ich müsste ja irgendwo
jede Eingabe des Nutzer speichern
Und - wie gesagt - ich darf nur Schleifen und if/else benutzen.
Ich wäre für einen Lösungsansatz oder eine Idee sehr dankbar!
|
|
Thema: Wo liegt der Fehler???? |
|
Ich soll nur float, double oder int benutzen.
Das Problem liegt an einem Fehler im Algorithmus...ich kann ihn nur nicht finden
|
|
Thema: Wo liegt der Fehler???? |
|
Ich habe ein Programm geschrieben in C.
Es soll zwei (vorher vom Nutzer eingegebene) Kommazahlen addieren.
Der Witz bzw. das Problem ist, wenn die Summe eine ganze Zahl ist, soll es "ohne"
Nachkommastellen ausgegeben werden, zB 1.23 + 3.77 = 5.
Wenn es eine Nachkommastelle gibt, dann soll die Summe eben mit einer Nachkommastelle ausgegeben werden usw...bis zur 3. Nachkommastelle! Alle sonstigen Zahlen dann eben nur noch mit 3 Nachkommastellen.
Das Programm sieht so aus:
#include <stdio.h>
int main(){
double k1, k2, summe, rest, rest1, rest2, rest3, rest4;
printf(Bitte geben Sie eine Zahl ein: ");
scanf("%lf", &k1);
printf(Bitte geben Sie noch eine Zahl ein: ");
scanf("%lf", &k2);
summe = k1 + k2;
rest = summe - (int)summe;
if(rest ==0){
printf("Die Summe ist %.0f\n", summe);
}else{
rest1 = rest*10;
rest2 = rest1 - (int)rest1;
if(rest2 ==0){
printf("Die Summe ist %.1f\n", summe);
}else{
rest3 = rest2 * 10;
rest4 = rest3 - (int)rest3;
if(rest4 ==0){
printf("Die Summe ist %.2f\n", summe);
}else{
printf("Die Summe ist %.3f\n", summe);
}
}
}
return 0;
}
Aus einem mir nicht erkennbaren Grund gibt das Programm immer - egal was ich eingebe - eine Zahl mit 3 Nachkommastellen aus!
ich bin verzweifelt
|
|
|
Zeige Beiträge 1 bis 7 von 7 Treffern |
|
|
|