PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Hilfe, mein C-Prog läuft nicht!


FragMaztah
2004-02-04, 19:11:04
hi, wer kann mir helfen? mein borland compiler, mit dem das prog laufen MUSS spuckt bei dem prog 2 fehler aus! ich hab schon alles probiert, finde die fehler aber nicht! wer kann mir helfen? thx 4 help.

_________________________________________________________

#include<iostream.h>
#include<string.h>


#define Anzahl_Fragen 3
#define Anzahl_Antworten 2

int Uebereinstimmungen(char eins[Anzahl_Fragen+1]char zwei[Anzahl_Fragen+1])
{
int count=0;
for (int i=0;i<Anzahl_Fragen;i++)
{
if( eins[i]==zwei[i])
{
count++;
}}
return count;
}
int main()
{
char feld[Anzahl_Fragen+1];
memset(feld.0.sizeof(feld));

cout<<"Bitte beantworten Sie die Forgenden Fragen"<endl;
cout<<"\nBitte nur mit 1 fuer Ja und 0 fuer Nein antworten!"<<endl;
cout<<endl;

for(int=0;i<Anzahl_Fragen;i++)
{
cout<<"Die Fragen";

switch(i)
{
case0:
cout<<"Möchten Sie mit ihrem Computer im Netzwerk arbeiten?<<endl; break;
case1:
cout<<"Wollen Sie mit Windows basierten Programmen arbeiten?<<endl; break;
case2:
cout<<"Läuft ihr Computer oefters laenger als sonst?<<endl; break;
// default;
// cout<<"Falsche Eingabe!!!<<endl;
}
cin<<feld[i];
}

char ver[Anzahl_Antworten+1][Anzahl_Fragen+1];
strcpy(ver[1],"001");
strcpy(ver[2],"011");
strcpy(ver[3],"111");

int anzahl Uebereinstimmungen=0;

int x;
do{
//char ver[Anzahl_Antworten+1];
for(int antwort=1;beruf<(Anzahl_Antworten+1);antwort++)
{
cout<<"Antwort:";
switch(antwort)
{
case1:
cout<<"Ihr passendes Betriebssystem ist Windows XP/2000"<<endl; break;
case2:
cout<<"Ihr passendes Betriebssystem ist Linux"<<endl; break;
default:
cout<<"Kein Eintrag in der Datenbank"<<endl;
cout<<endl;
}
anzahlUebereinstimmungen =Uebereinstimmungen(feld,ver[antwort]);

cout<<"Eintrag"<<feld<<endl;
cout<<"Antwort"<<ver[antwort]<<endl;
cout<<Uebereinstimmung:"<<anzahlUeberstimmungen;

cout<<"Bitte 0 fuer weiter"<<endl;
cin>>x;
cout<<endl;
}}
while(x!=0);
return 0;
}

Demirug
2004-02-04, 19:26:25
Poste mal noch die Fehler. Das macht es einfacher.

FragMaztah
2004-02-04, 19:33:09
Reihe:

8 - ) expected
22 - Too many decimal points
35 - Unterminated string or caracter constant
37 - Unterminated string or caracter constant
39 - Unterminated string or caracter constant
73 - Unterminated string or caracter constant

sind doch 6 fehler :(

Trap
2004-02-04, 19:37:20
int Uebereinstimmungen(char eins[Anzahl_Fragen+1]char zwei[Anzahl_Fragen+1])

Da fehlt ein Komma...

Stone2001
2004-02-04, 19:38:56
memset(feld.0.sizeof(feld));

Sollte wohl : memset(feld, 0, sizeof(feld)); heisen, oder?

Und bei den Strings fehlt jeweils ein ' " ' !

Demirug
2004-02-04, 19:40:52
int Uebereinstimmungen(char eins[Anzahl_Fragen+1]char zwei[Anzahl_Fragen+1])

Da fehlt ein Komma:

int Uebereinstimmungen(char eins[Anzahl_Fragen+1], char zwei[Anzahl_Fragen+1])

memset(feld.0.sizeof(feld));

Kommas keine Punkte

memset(feld,0,sizeof(feld));


switch(i)
{
case0:
cout<<"Möchten Sie mit ihrem Computer im Netzwerk arbeiten?<<endl; break;
case1:
cout<<"Wollen Sie mit Windows basierten Programmen arbeiten?<<endl; break;
case2:
cout<<"Läuft ihr Computer oefters laenger als sonst?<<endl; break;
// default;
// cout<<"Falsche Eingabe!!!<<endl;
}
cin<<feld[i];
}


Da fehlen die Endanführundzeichen


switch(i)
{
case0:
cout<<"Möchten Sie mit ihrem Computer im Netzwerk arbeiten?"<<endl; break;
case1:
cout<<"Wollen Sie mit Windows basierten Programmen arbeiten?"<<endl; break;
case2:
cout<<"Läuft ihr Computer oefters laenger als sonst?"<<endl; break;
// default;
// cout<<"Falsche Eingabe!!!"<<endl;
}
cin<<feld[i];
}


Da waren wohl zwei schneller

FragMaztah
2004-02-04, 20:24:55
hi, schonmal danke euch allen, aber ich hab jetzt komischerweise noch 5 fehler? :(

_______________________________________________________
#include<iostream.h>
#include<string.h>


#define Anzahl_Fragen 3
#define Anzahl_Antworten 2

int Uebereinstimmungen(char eins[Anzahl_Fragen+1],char zwei[Anzahl_Fragen+1])
{
int count=0;
for (int i=0;i<Anzahl_Fragen;i++)
{
if( eins[i]==zwei[i])
{
count++;
}}
return count;
}
int main()
{
char feld[Anzahl_Fragen+1];
memset(feld,0,sizeof(feld));

cout<<"Bitte beantworten Sie die Forgenden Fragen"<<endl;
cout<<"\nBitte nur mit 1 fuer Ja und 0 fuer Nein antworten!"<<endl;
cout<<endl;

for(int=0;i<Anzahl_Fragen;i++)
{
cout<<"Die Fragen";

switch(i)
{
case0:
cout<<"Möchten Sie mit ihrem Computer im Netzwerk arbeiten?"<<endl; break;
case1:
cout<<"Wollen Sie mit Windows basierten Programmen arbeiten?"<<endl; break;
case2:
cout<<"Läuft ihr Computer oefters laenger als sonst?"<<endl; break;
// default;
// cout<<"Falsche Eingabe!!!"<<endl;
}
cin<<feld[i];
}

char ver[Anzahl_Antworten+1][Anzahl_Fragen+1];
strcpy(ver[1],"001");
strcpy(ver[2],"011");
strcpy(ver[3],"111");

int anzahlUebereinstimmungen=0;

int x;
do{
//char ver[Anzahl_Antworten+1];
for(int antwort=1;???<(Anzahl_Antworten+1);antwort++)
{
cout<<"Antwort:";
switch(antwort)
{
case1:
cout<<"Ihr passendes Betriebssystem ist Windows XP/2000"<<endl; break;
case2:
cout<<"Ihr passendes Betriebssystem ist Linux"<<endl; break;
default:
cout<<"Kein Eintrag in der Datenbank"<<endl;
cout<<endl;
}
anzahlUebereinstimmungen=Uebereinstimmungen(feld,ver[antwort]);

cout<<"Eintrag"<<feld<<endl;
cout<<"Antwort"<<ver[antwort]<<endl;
cout<<"Uebereinstimmung:"<<anzahlUebereinstimmungen;

cout<<"Bitte 0 fuer weiter"<<endl;
cin>>x;
cout<<endl;
}}
while(x!=0);
return 0;
}



_______________________
Reihe:
28 - Declaration terminated incorrectly
28 - undefined symbol `i`
56 - expression syntax
61 - multiple declaration for `case1`
63 - multiple declaration for `case2`


bei den ??? weiss ich nicht was da hinkommen soll :(

Milton
2004-02-04, 22:24:55
Ich habe zwar seit über 5 Jahren nicht mehr in C programmiert, aber dann mal los:

Ich würde die Variablen am Anfang der Funktionen deklarieren, und nicht in den For-Schleifen. Wenn Du das machst, mußt Du schon ini i = 0 und nicht int = 0 schreiben (line 28);

Du mußt zwischen case und den Zahlen ein Leerzeichen lassen, sonst deklarierst Du die Sprungmarke "case0".
Außerdem solltest Du nach jeder Bedingung ein "break" einfügen.

Irgendwas stimmt in der for-Schleife mit den 3??? nicht.

In den meisten Compilern gibt es eine Hilfefunktion, die Syntaxfehler erklärt. Einfach mal ausprobieren.

Aber allgemein wird Dein Programm komische Dinge tun und ist so schlecht geschrieben, daß ich fast an einen Scherz denke. Vielleicht solltest Du erstmal was einfacheres als C probieren. Nix für ungut.

FragMaztah
2004-02-04, 22:36:17
also ich habe das programm nicht geschrieben. das ist eine gruppenarbeit für die schule, nur bleibt das dank meines partners der morgen nicht da ist an mir hängen.

ich selbst hab von c so gut wie keinen plan und er anscheinend auch nicht wenn das programm schon generell scheisse geschrieben ist ;). naja egal, gebe ich es halt so ab.

Achill
2004-02-05, 23:42:54
schaut es euch an, ob es so euren ansprüchen genügt - man kann noch eine ganze menge verändern und am stil arbeiten...


#include <iostream.h>
#include <string.h>


//const besser als define, da typenprüfung möglich
const int Anzahl_Fragen = 3;
const int Anzahl_Antworten = 2;

int Uebereinstimmungen(char eins[Anzahl_Fragen+1],char zwei[Anzahl_Fragen+1])
{
int count=0;
for (int i=0;i<Anzahl_Fragen;i++) {
if( eins[i]==zwei[i])
count++;
}
return count;
}

int main()
{
char feld[Anzahl_Fragen+1];
memset(feld,0,sizeof(feld));

cout << "Bitte beantworten Sie die Forgenden Fragen\n\n";
cout << "Bitte nur mit 1 fuer Ja und 0 fuer Nein antworten!\n\n";
cout << "Die Fragen:\n\n";

for(int i=0; i<Anzahl_Fragen; i++) {
switch(i) {
case 0:
cout << "Moechten Sie mit ihrem Computer im Netzwerk arbeiten?\n";
break;
case 1:
cout << "Wollen Sie mit Windows basierten Programmen arbeiten?\n";
break;
case 2:
cout << "Laeuft ihr Computer oefters laenger als sonst?\n";
break;
default :
break;
}
cin >> feld[i];
}

char ver[Anzahl_Antworten+1][Anzahl_Fragen+1];
strcpy(ver[1],"001");
strcpy(ver[2],"011");
strcpy(ver[3],"111");

int anzahlUebereinstimmungen=0, x = 0;

cout << "Antwort:\n";

do {
//char ver[Anzahl_Antworten+1];
for(int antwort=1; antwort< (Anzahl_Antworten+1); antwort++) {
switch(antwort) {
case 1:
cout << "Ihr passendes Betriebssystem ist Windows XP/2000\n";
break;
case 2:
cout << "Ihr passendes Betriebssystem ist Linux\n";
break;
default:
cout << "Kein Eintrag in der Datenbank\n";
break;
}

anzahlUebereinstimmungen=Uebereinstimmungen(feld,ver[antwort]);

cout << "Eintrag: " << feld << endl;
cout << "Antwort: " << ver[antwort] << endl;
cout << "Uebereinstimmung: " << anzahlUebereinstimmungen << endl;

cout << "Bitte 0 fuer weiter... \n" << endl;
cin >> x;
cout << endl;
}
} while(x!=0);

return 0;
}