Jump to content
Iulian Catalin Radu

Implementarea Structurilor Repetitive In C++

Recommended Posts

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

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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 


love is a verb
Love is a doing word

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...