Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Ile cyfr jest w łańcuchu

Ostatnio zmodyfikowano 2014-09-14 20:06
Autor Wiadomość
junior95
Temat założony przez niniejszego użytkownika
Ile cyfr jest w łańcuchu
» 2014-09-14 17:52:03
Witam, mam za zadanie stworzyć program, który po wpisaniu łańcucha złożonego z cyfr wypisze ile jest w nim zer, jedynek, dójek i tak aż do 9-tki. Zrobiłem to bez pętli tak:

cout<<"Wprowadz lancuch"<<endl;
     string h;
     cin>>h;
     int suma=0;
     int x;
     int y=0;
     int b=0;
     int c=0;
     int d=0;
     int e=0;
     int f=0;
     int g=0;
     int z=0;
     int i=0;
     int j=0;
 
     for(x=0; x<=h.length(); x++)
     {
             if(h[x]=='0')
             {
                          y=y+1;}
             else if(h[x]=='1')
             {
                          b=b+1;}
             else if(h[x]=='2')
             {
                          c=c+1;}
             else if(h[x]=='3')
             {
                          d=d+1;}
             else if(h[x]=='4')
             {
                          e=e+1;}
             else if(h[x]=='5')
             {
                          f=f+1;}
             else if(h[x]=='6')
             {
                          g=g+1;}
             else if(h[x]=='7')
             {
                          z=z+1;}
             else if(h[x]=='8')
             {
                          i=i+1;}
             else if(h[x]=='9')
             {
                          j=j+1;}}
                          cout<<"Suma cyfr 0 wynosi : "<<y<<endl;
                          cout<<"Suma cyfr 1 wynosi : "<<b<<endl;
                          cout<<"Suma cyfr 2 wynosi : "<<c<<endl;
                          cout<<"Suma cyfr 3 wynosi : "<<d<<endl;
                          cout<<"Suma cyfr 4 wynosi : "<<e<<endl;
                          cout<<"Suma cyfr 5 wynosi : "<<f<<endl;
                          cout<<"Suma cyfr 6 wynosi : "<<g<<endl;
                          cout<<"Suma cyfr 7 wynosi : "<<z<<endl;
                          cout<<"Suma cyfr 8 wynosi : "<<i<<endl;
                          cout<<"Suma cyfr 9 wynosi : "<<j<<endl;
 }

Jednakże chciałbym to wykonać przy pomocy pętli for i tablicy lecz nie wiem jak. Pomożecie?
P-116990
pekfos
» 2014-09-14 19:33:44
Czy znak jest cyfrą, możesz stwierdzić funkcją isdigit(). Liczbę ze znaku cyfry wyciągniesz, odejmując '0'.
P-116992
michal11
» 2014-09-14 19:42:30
P-116993
wojownik266
» 2014-09-14 19:48:09
Można to jeszcze zrobić według pomysłu który sam podałeś o tak:

C/C++
#include <iostream>
using namespace std;

int main()
{
    char cyfry[ 10 ] = { 0, 0, 1, 1, 5, 6, 7, 7, 8 };
    int a = 0;
    int b = 0;
    int c = 0;
    int d = 0;
    int e = 0;
    int f = 0;
    int g = 0;
    int h = 0;
    int i = 0;
   
    for( int i = 0; i < 10; ++i )
    switch( cyfry[ i ] )
    {
    case 0: a++; break;
    case 1: b++; break;
    }
    cout << "Ilosc cyfr zero wynosi:" << a << endl;
    cout << "Ilosc cyfr jeden wynosi:" << b << endl;
   
    cin.get();
    return 0;
   
}
P-116994
pekfos
» 2014-09-14 20:06:22
Można to jeszcze zrobić według pomysłu który sam podałeś o tak:
Tablica miała zastąpić te wszystkie zmienne od a do j.
P-116996
« 1 »
  Strona 1 z 1