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

2012-01-31 16:48

Rejestracja: 8 lat temu

Ostatnio: 8 lat temu

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.

edytowany 1x, ostatnio: madmike, 2012-01-31 17:10
TAGUJ wątkI nazwą języka/środowiska!!!!!!!!! - madmike 2012-01-31 16:49

Pozostało 580 znaków

sig
2012-01-31 17:06
sig

Rejestracja: 8 lat temu

Ostatnio: 4 godziny temu

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

edytowany 3x, ostatnio: sig, 2012-01-31 17:20

Pozostało 580 znaków

2012-01-31 17:47

Rejestracja: 12 lat temu

Ostatnio: 2 lata temu

0

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

Pozostało 580 znaków

sig
2012-01-31 18:10
sig

Rejestracja: 8 lat temu

Ostatnio: 4 godziny temu

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).

Pozostało 580 znaków

2012-01-31 18:29
Moderator

Rejestracja: 12 lat temu

Ostatnio: 3 godziny temu

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';
}

edytowany 1x, ostatnio: hauleth, 2012-01-31 18:30

Pozostało 580 znaków

mal
2012-01-31 19:58
mal
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");

Pozostało 580 znaków

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