suma cyfr w zmiennej string

0

Witam mam problem z programem który liczy sumę cyfr podanej w zmiennej string a mianowicie nic nie wypisuję :(
#include <iostream>

using namespace std;

int main()
{
string n;
cin>>n;
int l, r, s=0, dlugosc=n.size();
for(int i=dlugosc-1;i>=0;i--)
{
l=(char)n[i]-48;
while(l>0)
r=l%10;
s=s+r;
l=l/10;
}
cout<<s;
return 0;
}

0
  1. Brak znaczników kodu
  2. Brak formatowania kodu: http://4programmers.net/Forum/998482
  3. Smrodek przy dekrementacji: http://4programmers.net/Forum/1101404
  4. Bezsensowna pętla od końca
  5. Bezsensowne magiczne liczby zamiast 48 można napisać '0'
  6. Po kiego coś dzielisz przez 10?
  7. Zapoznaj się z operatorem +=
0

Problem w tym polega że prawie identycznie pisałem taki program na zajęciach i działał a jak chciałem go odtworzyć w domu to nic :(

0
tyrion97 napisał(a):

Problem w tym polega że prawie identycznie pisałem taki program na zajęciach i działał a jak chciałem go odtworzyć w domu to nic :(

Wstaw kod, którego używasz w kompilatorze, bo ten tutaj nie ma prawa działać. Brak bibliotek,

 < 

zamiast <<

 itd.
0

dobra udało mi się naprawić ;)
usunąłem pętle while i do wypisania mam cout<<s+8;
program działa :)

1

Owszem może i działa ale robi od pyty zbędnych operacji: http://ideone.com/0MzD6k

#include <string>
#include <iostream>
using namespace std;

int main()
  {
   string str;
   cin>>str;
   unsigned sum=0;
   for(auto ch:str) sum+=ch-'0'; // lub ewentualnie for(size_t i=0;i<str.size();++i) sum+=str[i]-'0';
   cout<<sum;
   return 0;
  }

1 użytkowników online, w tym zalogowanych: 0, gości: 1