Sprawdzanie czy cyfra dziesiątek jest większa od 5????

0

Dokończ ciąg instrukcji który sprawdza czy wczytana liczba całkowita większa od 9 ma cyfrę dziesiątek mniejszą od 5 i wyświetla odpowiedni komunikat, czy tak jest czy nie.

int n;
cin>>n;
if(n>9)
{
.
.
.
}

Napisałem takie coś

#include<iostream>
#include<iomanip>

using namespace std;
int main()
{
int n,c,d;

cout<<"Podaj n:";
cin>>n;

if(n>9 && n<100)
{
   c=n/10;
if(c>5)
cout<<"Cyfra dziesiatek jest wieksza"<<endl;
else
cout<<"cyfra dziesiatek jest mniejsza"<<endl;
}
else if(n>100)
{
      c=n/10;
      d=c%10;
if(d>5)
cout<<"Cyfra dziesiatek jest wieksza"<<endl;
else
cout<<"cyfra dziesiatek jest mniejsza"<<endl;
}
system("pause");
return 0;
}

Skoro w poleceniu jest dokończ ciąg to pewnie powinno być to zrobione z użyciem tylko jednej zmiennej n.

1

Jeśli jest większa od 9 i mniejsza od 50 spełnia warunki, starczy jeden if/else. 50 ma "liczbę dziesiątek" 5, czyli już warunku nr 2 nie spełnia. Swoją drogą gdzie formatowanie kodu,
edit: mój błąd, przy większych od 100 do ifa podstawiasz resztę z dzielenia n/100.Wtedy zadziała bez pudła

0

Albo bierzesz liczbę do stringa i wczytujesz znak drugi od końca

0

Wątpię żeby konwersja do stringa "przeszła" na tym poziomie programowania, to pewnie jakieś zadanie na ferie/do szkoły.

ps zauważyłem że większa od 9 nie jest warunkiem do sprawdzenia, co ułatwia ifa (starczy sprawdzić czy ta reszta z dzielenia jest mniejsza od 50).

0
sig napisał(a)

Wątpię żeby konwersja do stringa "przeszła" na tym poziomie programowania, to pewnie jakieś zadanie na ferie/do szkoły.

ps zauważyłem że większa od 9 nie jest warunkiem do sprawdzenia, co ułatwia ifa (starczy sprawdzić czy ta reszta z dzielenia jest mniejsza od 50).

Hmmm, a po co konwertować?

string s;
cin >> s;
if(std::find_first_of(s.begin(), s.end(), [](char c){return !isnum(c);}) == s.end()) {
  char c = s[s.length-2];
  cout << (c > '0' && c < '5' ? "tak" : "nie") << '\n';
}
2

Dokończ ciąg instrukcji który sprawdza czy wczytana liczba całkowita większa od 9 ma cyfrę dziesiątek mniejszą od 5 i wyświetla odpowiedni komunikat, czy tak jest czy nie.

int cd=(n % 100)/10;

if ( cd < 5 )
    printf("Tak");
else
    printf("Nie");

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