C++, suche Tutorial

Konstrukte der Art
Code:
if (a < b, a < c, c < d) { ... }
habe ich noch nicht gesehen ^^

Du meinst sicher sowas hier:
Code:
if (a < b && a < c && c < d) // falls (a < b UND a < c UND c < d)
{
}

if (a < b || a < c || c < d) // falls (a < b ODER a < c ODER c < d)
{
}
 
Oh man fail haha ja danke so jetzt läuft alles :-D

Jetzt muss ich nur noch rauskriegen wie man testet ob die eingegebene Zahl eine Primzahl ist (würde es gerne ohne if(eingabe =1,3,5,7,.....) schreiben.

LG
silent12
 
#include <iostream>
using namespace std;

int eingabe;
int main()

{ cout <<"Geben sie 1 Zahl zwischen 1 und 100 ein" << endl;
cin >> eingabe;

if (eingabe = 2 || 3 ||5|| 7|| 11 ||13|| 17|| 19|| 23|| 29 ||31|| 37 ||41|| 43|| 47|| 53|| 59|| 61|| 67|| 71|| 73|| 79|| 83|| 89||97);
{ cout <<"Sie haben eine Primzahl eingegeben" << endl;}


else { cout <<"Sie haben keine Primzahl eingegeben." << endl; }

system ("Pause");
}



Wo ist der Fehler ?

LG
silent12
 
Zuletzt bearbeitet:
Wenn ich das umstelle dann ändert sich bei mir am Fehler nichts da der Fehler immer noch bei dem "else..." angezeigt wird.

LG
silent12
 
Code:
//Primzahlen bestimmen
#include <iostream>
using namespace std;
void main()

{
    const int limit=1000;
    int n=0, i=0, j=0, x=0, y=0;
    bool marked[1002]={0};
    int prime[limit];

    //Bereich der Primzahlen wählen
    while ((n>limit)||(n<=1)) //Wiederholung bei ungültiger Eingabe
    {
        cout<<"Suche nach Primzahlen < n (maximal 1000)\tn eingeben\t";
        cin>>n; //Eingabe
        if ((n>limit)||(n<=1)) //Plausibilitaetskontrolle
            cout<<endl<<"Ungueltige Eingabe!"<<endl;
        else break;
    }

    for (i=2;i<n;i++) //Primzahlen suchen
    {
        if (!marked[i])
        {
            marked[i]=1; // Platz i markieren
            prime[y]=i; //Primzahl in Array festlegen
            y=y+1;
            for (j=i;j<n;j++) //Vielfache von i markieren
            {    
                x=i*j;
                if (x>limit) break;
                marked[x]=1;
            }
        }
        else continue;
    }
    cout<<endl<<endl;
    for (i=0;i<y;i++) //Ausgabe
        cout<<prime[i]<<" "<<endl;
    if (n==2) cout<<n<<endl; //Sonderfall für n=2
}
Der sucht dir alle Primzahlen bis 1000 (änderbar) und speichert diese in ein Array. Vielleicht hilfreich für dich.

Das ist der Hintergedanke: http://de.wikipedia.org/wiki/Sieb_des_Eratosthenes
 
Danke aber ich wollte eig nur wissen was an dem "else" (der zeile) nicht stimmt weil ich will ja nich alle primzahlen suchen sondern nur für die eingegebenen zahlen wissen ob es eine primzahl ist/nicht ist.

LG
silent12
 
Ah genau thx :-D Jetzt muss ich nur noch die Quersumme einer beliebigen Zahl errechnen. Kann jemand helfen ?

LG
silent12
 
Code:
#include <iostream>
using namespace std;

void main()

{
    int zahl=0, quer=0;

    cin>>zahl;

    while (zahl > 0) 
    {
    quer = quer + zahl % 10;
    zahl = zahl/10;
    }    

    cout<<endl<<endl<<"Quersumme: "<<quer<<endl;
}
Bitteschön :D
 
DAnke aber bei mir läuft es irgendwie nicht (zeigt bei mir in der zeile nach dem void main () einen Fehler an.

LG
silent12
 
Also bei mir gehts. Aber du sollst eigendlich die Grundidee aufnehmen, verstehen und dann selbst noch mal was schreiben. Sonst lernst du es nie :D

Testen testen testen.
 
Siehst du einen Fehler im Syntax? Also ich nicht. Und mein Visual Studio 2010 compiliert mir das wunderbar.
 
Ich würd dir Microsoft Visual Studio empfehlen.

Hab mir heute auch mal die Express Version geladen, und die ist sehr gut.

Was ist denn die Fehlermeldung?
 
void main() ist falsch, ich weiß nicht, wo alle das immer her nehmen, aber das ist laut C Standard ungültig ("Program behavior undefined"). In C++ ist es explizit verboten. Einige Compiler akzeptieren es trotzdem (Visual Studio z.B.) andere nicht.

Also entweder int main() oder int main(int argc, char *argv[]) aber bitte nicht void!
 
Zuletzt bearbeitet:
Zurück