Sumowanie liczb kończących się cyfrą 1, 5 lub 7

0

Witam, dopiero co zaczynam z programowaniem i prosiłbym was o pomoc z zadaniem w którym muszę napisać program w C++ Który zsumuje wypisane na klawiaturze liczby kończące się cyframi 1 , 5, 7 ( 107, 345 itp) a inne zignoruje. Jakieś wskazówki ?

fasadin ... dzięki za pomoc !

0

tak, mam pare wskazowek

  1. zacznij sie uczyc jezyka (to co potrzebujesz jest bardzo proste, po kazdym kursie powinienes moc to zrobic)
  2. googluj problem bo juz na pewno tak trywialny zostal rozwiazany
  3. nie przychodz z czyms takim na forum, tylko z konkretnymi rzeczami (np dlaczego ta i ta linijka nie dziala albo daje nieoczekiwany output)
  4. uzywaj opcji szukaj jak juz nie chcesz googlowac. Wczoraj dalem linka jak zaczac z c++...
0

Wystarczy, że podzielisz modulo wprowadzoną liczbę przez 10 i sprawdzisz czy reszta z dzielenia wynosi 1, 5 lub 7.

0

Też się zaciekawiłem tym zadaniem.

np. dla liczby 107:

if(liczba % 10 == 7) ?

0

@krzychu09pl
nie ma za co. Zeby udowodnic ze mialem racje specjalnie dla Ciebie poswiecilem mniej czasu niz na pisanie tego postu

https://www.google.nl/webhp?sourceid=chrome-instant&ion=1&espv=2&es_th=1&ie=UTF-8#q=what%20is%20last%20number%20c%2B%2B

http://stackoverflow.com/questions/3001576/what-is-the-most-efficient-way-to-find-the-last-digit-of-an-int-in-c

zapewne nawet po polsku znalazloby sie... wiec jezeli ktos pisze Ci takie rzeczy to uwierz mi, ze to nie jest zlosliwosc tylko tak powinienes zrobic jezeli chcesz sie czegos nauczyc

0
if(a || b || c || d || e || f % 10 == 7)

może być taki warunek ? tylko nie wiem jak teraz do sumy dodać liczbę ? bo nie wiadomo która wyjdzie dobra.

1

Może być, ale ten warunek robi zupełnie coś innego niż ci się wydaje że robi...

8

Bede mily i dam gotowca.

	array<char,3> s {'3', '5', '7'};
	cout << accumulate(istream_iterator<string>(cin), istream_iterator<string>(), 0,
				[&](int acc, string v) { return acc + (any_of(s.begin(), s.end(),
					[&](char c) { return c == v.back(); }) ? stoi(v) : 0); });
0
n0name_l napisał(a):

Bede mily i dam gotowca.

	array<char,3> s {'3', '5', '7'};
	cout << accumulate(istream_iterator<string>(cin), istream_iterator<string>(), 0,
				[&](int acc, string v) { return acc + (any_of(s.begin(), s.end(),
					[&](char c) { return c == v.back(); }) ? stoi(v) : 0); });

No dzięki wielkie, ale nie wiele jestem w stanie z tego zrozumieć, chyba musi być jakiś prostszy sposób na takie zadanie które dostaliśmy na początku zajęć, 1 zadanie - wypisać program wyświetlający Hello World, 2 program - przeliczający metry na stopy, 3 program - Właśnie to ... i taka przepaść w materiale dla zielonych studentów ?

Idąc waszymi suegstiami skrobie coś takiego

int a,b,;

cout << ("Podaj liczbe");
cin >> a;
cout << ("Podaj 2 liczne");
cin >> b;

	if(a % 10 == 7)(b % 10 == 7);

cout << a+b; 

No ale to nie działa, poza tym chce na razie ustalić jak to robić nawet dla 2 liczb.

0
  1. napisz program ktory sumuje N liczb (N moze byc kazda liczba calkowita)
  2. jak napisales to teraz dodaj warunek ze jezeli liczby sa parzyste to niech dodaje do sumy
  3. dokoncz program z Twoimi wytycznymi.

zapoznaj sie z vector

Oczywiscie ze nie bedzie dzialac bo nie masz nawet podstaw pisania i nie masz pojecia co wlasnie zrobiles. Dlatego napisalem na samym poczatku. Wez tutorial w lape i jedziesz.

2

Jeżeli teraz zgłaszasz się po program którego sedno da się zapisać w jednym wierszu, to co będzie kiedy dojdzie do kilkudziesięciowierszowych ?

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

int main()
  {
   unsigned sum=0,v;
   while(cin>>v) if(strchr("157",'0'+v%10)) sum+=v;
   cout<<sum<<endl;
   return 0;
  }
0
_13th_Dragon napisał(a):

Jeżeli teraz zgłaszasz się po program którego sedno da się zapisać w jednym wierszu, to co będzie kiedy dojdzie do kilkudziesięciowierszowych ?

Dokona samookaleczenia lub samogwałtu lub najpewniej zgłosi się jeszcze raz po program?

0

W tym zadaniu są dwa podproblemy:

  • wczytywanie n liczb
  • sprawdzenie czy liczba się kończy na 3,5,7

To drugie jest już chyba jasne.
To pierwsze pewnie da się znaleźć w sieci.

Np. dla hasła "c++ cin integer values loop"

znalazłem: http://www.parashift.com/c++-faq/stream-input-failure.html

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