Willkommen |
|
myGully |
|
Links |
|
Forum |
|
|
|
 |
25.01.11, 15:30
|
#1
|
Süßstoffbehältnis
Registriert seit: Feb 2009
Beiträge: 9
Bedankt: 6
|
Hier bitte so wie du es haben wolltest.
Code:
#include <iostream>
using namespace std;
int CountNumbers (int Number[], int lang) {
int kleinT=0;
for(int n=0;n<lang;n++)
{
if (Number[n] >0 && Number[n]<1000)
kleinT++;
}
return kleinT;
}
int main () {
int n=0;
int NumIn[20];
int laenge=0,kleinerT=0;
cout << "Geben Sie Zahlen ein, abbruch mit -1: ";
while(true)
{
cin >> NumIn[n];
if(NumIn[n]==-1)
break;
n++;
}
laenge=n;
cout << "Anzahl Zahlen = "<< laenge<< endl;
kleinerT=CountNumbers (NumIn,laenge);
laenge=laenge-kleinerT;
cout << "Anzahl Zahlen Groesser 1000 = "<< laenge << endl;
cout << "Anzahl Zahlen Kleiner 1000 = "<< kleinerT << endl;
}
Dein Programm ist leider vom grundsatz her total Falsch.
Wenn du alles erklärt haben willst, auch warum deins nicht funktionieren können wir uns gerne mal per Skype oder TS unterhalten^^
Juhu, mein erstes c++ Programm
Edit: es gibt auch einen weg ohne Arrays, denke das wäre einfacher für dich, bei bedarf kann ich diesen auch noch benutzen
__________________
|
|
|
25.01.11, 15:39
|
#2
|
Mitglied
Registriert seit: May 2010
Beiträge: 423
Bedankt: 224
|
Zitat:
Zitat von pokefreak
Hier bitte so wie du es haben wolltest.
Dein Programm ist leider vom grundsatz her total Falsch.
Wenn du alles erklärt haben willst, auch warum deins nicht funktionieren können wir uns gerne mal per Skype oder TS unterhalten^^
Juhu, mein erstes c++ Programm 
|
das problem bei deinem code ist aber, dass du bereits vorher wissen musst, wie viele zahlen maximal eingegeben werden, weil du ja den array vorher eine länge zuweisen musst
|
|
|
25.01.11, 15:54
|
#3
|
Süßstoffbehältnis
Registriert seit: Feb 2009
Beiträge: 9
Bedankt: 6
|
Ja, Stimmt aber da er die Zahlen per hand eingibt und nicht Speichert, nach beendigung des Programms,
dachte ich das 255 reichen^^
Auserdem is das nur eine Lösung, es geht auch ohne Arrays, wie gesagt.
MfG
Pokefreak
__________________
|
|
|
25.01.11, 17:05
|
#4
|
Anfänger
Registriert seit: Mar 2010
Beiträge: 23
Bedankt: 1
|
okay, danke, das reicht mir schon. Ich habe Felder bereits öfters verwendet.
|
|
|
25.01.11, 19:52
|
#5
|
Ist öfter hier
Registriert seit: Jan 2010
Beiträge: 189
Bedankt: 117
|
Zitat:
Zitat von BastiR1991
Code:
#include <iostream>
using namespace std;
//diese Funktion wird immer 1 zurückgeben (Ausnahme bei -1), AllNumbers muss global definiert sein, oder in die Funktion übergeben werden
int CountNumbers (int Number) {
int AllNumbers=0;
bool Break=false;
while (Break == false) {
if (Number != -1)
AllNumbers++;
else
Break == true;
}
return AllNumbers;
}
//gleiches Problem wie bei der Funktion davor
int CountNumbersOver1000 (int Number) {
int NumbersOver1000 = 0;
bool Break = false;
while (Break == false) {
if (Number != -1) {
if (Number > 1000)
NumbersOver1000++;
}
else
Break == true;
}
return NumbersOver1000;
}
int main () {
int NumIn=0;
cout << "Geben Sie eine Zahl ein: ";
cin >> NumIn;
cout << "Anzahl Zahlen = "<< CountNumbers (NumIn) << endl;
cout << "Anzahl Zahlen Größer 1000 = "<< CountNumbersOver1000 (NumIn) << endl;
}
|
Kommentare im Code.
Wieso nutzt du eigentlich While-Schleifen, wenn du sowieso nur eine Zahl kontrolierst?
-Counter in der main definieren und an die Funktionen übergeben.
-whileschleien löschen
Spaß haben
Zitat:
Zitat von pokefreak
Dein Programm ist leider vom grundsatz her total Falsch.
Wenn du alles erklärt haben willst, auch warum deins nicht funktionieren können wir uns gerne mal per Skype oder TS unterhalten^^
Juhu, mein erstes c++ Programm
Edit: es gibt auch einen weg ohne Arrays, denke das wäre einfacher für dich, bei bedarf kann ich diesen auch noch benutzen
|
Das Programm ist nicht grundsätzlich falsch, nur ein paar Fehler sind halt drin...
Problem bei deinem Ansatz:
Fehlermeldung wegen Bad memory access. (Feld wird auf 20 Stellen begrenzt, werden 21 eingegeben --> buff)
Lösung:
Dynamisches anpassen des Arrays wenn es droht "überzulaufen"
__________________
Make the world a prettier place - get a bikini wax!
|
|
|
26.01.11, 20:23
|
#6
|
Anfänger
Registriert seit: Nov 2010
Beiträge: 1
Bedankt: 0
|
#include <iostream>
using namespace std;
int AllNumbers=0;
int NumbersOver1000 = 0;
void CountNumbers (int Number) {
if (Number != -1)
AllNumbers++;
}
void CountNumbersOver1000 (int Number) {
if (Number != -1) {
if (Number > 1000)
NumbersOver1000++;
}
}
int main () {
int NumIn=0;
while(NumIn!=-1){
cout << "Geben Sie eine Zahl ein: (-1 bricht das Programm ab)";
cin >> NumIn;
CountNumbers (NumIn);
CountNumbersOver1000 (NumIn);
}
cout << "Anzahl Zahlen = "<< AllNumbers << endl;
cout << "Anzahl Zahlen Größer 1000 = "<< NumbersOver1000<< endl;
}
Das ist eine Lösung, ohne Array zu verwenden
|
|
|
Forumregeln
|
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren
HTML-Code ist Aus.
|
|
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:04 Uhr.
().
|