Was ist da Falsch???



  • nene ein programm funktioniert nicht und zwar folgendes:

    #include <stdio.h>
    #include <stdlib.h> 
    #include <string.h>
    
    main(){
    
           int i,Satz;
           int e = 0;
           char str[100] = "";
    
           printf("\nBitte geben Sie einen Satz ein.\n");
           scanf("%s",&str);
    
           for(i = 0; i < strlen(str); i++)
        {
                 if(str[i] = 'e')e++;
        }
          printf("%d mal e\n", e);
    
          getchar();
          return 0;
    }
    

    Das Programm muss sagen wieviel mal ein e in einem string vorkommt.



  • if(str[i] == 'e')



  • if(str[i] = 'e')e++; muss if(str[i] == 'e')e++; sein!
    zeigt dir dein Compiler keine Fehler mit Zeilen Angabe?

    @elise mist eine sekunde schneller 😉



  • nein der meldet nichts wegen dem =.

    das programm sieht jetzt im moment so aus läuft aber leide rnoch nicht. da muss noch irgendwo ein fehler stecken der der compiler nicht erkennt:

    #include <stdio.h>
    #include <stdlib.h> 
    #include <string.h>
    
    main(){
    
           int i,Satz;
           int e = 0;
           char str[100] = "";
    
           printf("\nBitte geben Sie einen Satz ein.\n");
           scanf("%s",&str);
    
           for(i = 0; i < strlen(str); i++)
        {
                 if(str[i] == 'e')e++;
        }
          printf("%d mal e\n", e);
    
          getchar();
          return 0;
    }
    


  • versuch mal

    int main()
    

    bei mir läufts!



  • beim kollegen der linux hat läuft es auch nur unter dem scheiss windows läuft es nicht.

    #include <stdio.h>
    #include <stdlib.h> 
    #include <string.h>
    
    int main(){
    
           int i,Satz;
           int e = 0;
           char str[100] = "";
    
           printf("\nBitte geben Sie einen Satz ein.\n");
           scanf("%s",&str);
    
           for(i = 0; i < strlen(str); i++)
        {
                 if(str[i] == 'e')e++;
        }
          printf("%d mal e\n", e);
    
          getchar();
          return 0;
    }
    


  • Ich lasse es auch auf Windows laufen! unds tut auch!!!

    mach mal

    char str[100];
    

    anstatt:

    char str[100] = "";
    

    Vielleicht hat dein Compiler mit irgendwas Probleme!



  • also unter cmd funktionierts. der e-zähler kommt aber nicht über die 1 herüber.



  • wenn ich die "" weglasse gibt der compiler eine fehlermeldung aus



  • #include <stdio.h> 
    #include <stdlib.h> 
    #include <string.h> 
    
    int main(){ 
    
           int i,Satz; 
           int e = 0; 
           char str[100]; 
    
           printf("\nBitte geben Sie einen Satz ein.\n"); 
           scanf("%s",&str); 
    
          for(i = 0; i < strlen(str); i++) 
          { 
                 if(str[i] == 'e')
                 {
                     e++; 
                 }      
          } 
          printf("%i mal e\n", e); 
    
          getchar(); 
          return 0; 
    }
    

    Vielleicht so?



  • hi,

    hab jetzt nicht den ganzen thread gelesen, aber:
    - welchen compiler verwendest du UND
    - welche fehlermeldung wird ausgegeben?

    ciao



  • funktioniert leider nur in der cmd konsole sonst läufts überhaupt nicht mehr. man kackt mich das an.



  • hephaistos6 schrieb:

    hi,

    hab jetzt nicht den ganzen thread gelesen, aber:
    - welchen compiler verwendest du UND
    - welche fehlermeldung wird ausgegeben?

    ciao

    compiler= devc++
    fehlermeldung= gar keine das programm wird einfach geschlossen



  • Dann lad dir nen anderen Compiler runter?!



  • ich habs ja schon mit dem borland builder 5 und 6 versucht aber die kommen auch nicht weiter.



  • naja die melden wenigstens:

    [C++ Warnung] Unit1.c(14): W8012 Vergleich von signed- und unsigned-Werten
    

    laut compiler müsste da der fehler sein:

    for(i = 0; i < strlen(str); i++)
    


  • aber das ist ja nur eine warnung! dh: es funktioniert.
    viele studios sind so, dass sie so konsolenprogramme nicht richtig anzeigen.
    bau mal ein sleep(4); vor dem return ein!

    ciao



  • ich habs mit system("Pause"); gemacht geht auch. tja ein problem wäre gelöst. das nöchste problem ist aber das beim resultat nur immer 0 oder 1 angezeigt wird.

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    int main(){
    
           int i,Satz;
           int e = 0;
           char str[100];
    
           printf("\nBitte geben Sie einen Satz ein.\n");
           scanf("%s",&str);
    
          for(i = 0; i < strlen(str); i++)
          {
                 if(str[i] == 'e')
                 {
                     e++;
                 }      
          }
          printf("%i mal e\n", e);
    
          getchar();
          system("Pause");
          return 0;
    }
    


  • machst du statt %i ein %d und es sollte gehen 🙂

    hth,
    ciao



  • nein funktioniert imme noch nicht
    hab folgendes versucht

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    int main(){
    
           int i,Satz;
           int e = 0;
           char str[100];
    
           printf("\nBitte geben Sie einen Satz ein.\n");
           scanf("%s",&str);
    
          for(i = 0; i < strlen(str); i++)
          {
                 if(str[i] == 'e')
                 {
                     e++;
                 }      
          }
          printf("%d mal e\n", e);
    
          getchar();
          system("Pause");
          return 0;
    }
    

    und

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    int main(){
    
           int i,Satz;
           char e = 0;
           char str[100];
    
           printf("\nBitte geben Sie einen Satz ein.\n");
           scanf("%s",&str);
    
          for(i = 0; i < strlen(str); i++)
          {
                 if(str[i] == 'e')
                 {
                     e++;
                 }      
          }
          printf("%d mal e\n", e);
    
          getchar();
          system("Pause");
          return 0;
    }
    

    geht beides nicht


Anmelden zum Antworten