Jump to content

Recommended Posts

Posted

Salut, am o problema, nu stiu de ce atunci cand rulez acest program imi executa de doua ori bucla, de exemplu introduc caracteru A si imi afiseaza : am atasat un jpg. eu vreau doar sa imi inregistreze doar litera mare...nu stiu de unde imi apare "s-a citit un alt caracter".
Daca puteti sa ma ajutati, va multimesc mult.
 

/*1. Se citeste câte un caracter, pâna la întâlnirea caracterului @. 
Pentru fiecare caracter citit, sa se afiseze un mesaj care sa indice daca s-a citit 
o litera mare, o litera mica, o cifra sau un alt caracter. 
Sa se afiseze câte litere mari au fost introduse, câte litere mici, câte cifre si câte alte caractere. 
Se prezinte trei modalitati de implementare (cu instructiunea while, cu instructiunea for si cu instructiunea do-while).
*/
 
#include<stdio.h>
#include<conio.h>
 
int main ()
    {
         char a;                             //declar variabila
         int i=0,j=0,k=0,l=0;                //declar constantele
         
          printf("na=");        //afiseaza a=
          scanf("%c",&a);        //citeste de la tastatura caracterul a 
         
         while(a!=64)                       //cat timp a este diferit de caracterul @
               {
                      
                      
                      
                      
                      
                      if(a>=65 && a<=90)                                          //conditie 
                               {
                                  printf("nS-a citit o litera maren");          // afiseaza mesajul
                                  i++;                                            //se incrementeaza i
                                  }
                      if(a>=97 && a<=122)                                          //conditie 
                               {
                                  printf("S-a citit o litera mican");             //mesaj
                                  j++;                                             //se incrementeaza j
                                  }
                      if(a>=48 && a<=57)                                           //conditia
                              {
                                  printf("S-a citit o cifran");                   //afiseaza mesajul
                                  k++;                                             //se incrementeaza k
                                  }
                 if((a>57 && a<64) || (a>90 && a<97) || a>122 || a<48)             //celelalte caractere
                           {
                                   printf("nS-a citit un alt carectern");        //afiseaza mesajul
                                   l++;   
                                   }                                        //incrementeaza l++
          
                                   
                                   
                             
                      printf("i=%dn",i);                                          //afiseaza contorii
                      printf("j=%dn",j);                                          //afiseaza contorii
                      printf("k=%dn",k);                                          //afiseaza contorii
                      printf("l=%dn",l);
                       
                    printf("na=");        //afiseaza a=     
                   scanf("%c",&a);        //citeste de la tastatura caracterul a                                                                 
         
               }
               
              
               
               getch();
}

post-32833-0-13832500-1394462633_thumb.j

Posted

Am introdus in program cele doua linii, dar primesc urmatoarea eroare : invalid conversion from `char' to `const char*' 

                                                                                                                  initializing argument 1 of `int strcmp(const char*, const char*)' 

 

Adica el vrea in locul varibilei a care este char o data de tip const char, cum fac asta nu mai stiu :D.

 

Merci de raspuns.

Posted

problema e aici:

  printf("na=");        //afiseaza a=     
                   scanf("%c",&a);        //citeste de la tastatura caracterul a       

 

Corect: scanf(" %c",&a);

scanf in acest caz citeste un singur caracter introdus, inclusiv daca e spatiu, enter, sau backspace.

detalii despre probl aceasta: http://stackoverflow.com/questions/21061659/why-use-white-space-around-c

  • Upvote 1
Posted

problema e aici:

  printf("na=");        //afiseaza a=     

                   scanf("%c",&a);        //citeste de la tastatura caracterul a       

 

Corect: scanf(" %c",&a);

 

intre cele 2 scanf-uri eu nu vad vreo diferenta..

 

later edit:

ah,nevermind, vad ca ai pus spatie inainte de % in al 2lea.. :D 

  • Upvote 1

love is a verb
Love is a doing word

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.