• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Sprawdź czy liczba jest zapisana w systemie siódemkowym

Object Storage Arubacloud
0 głosów
149 wizyt
pytanie zadane 26 stycznia 2020 w C i C++ przez Michał2019 Nowicjusz (170 p.)

Cześć, mam problem z takim zadaniem: "Napisz program, który sprawdzi czy liczba jest zapisana w systemie pozycyjnym siódemkowym". 

Umiem zrobić program, który przekształca liczbę naturalną na liczbę w systemie siódemkowym, jednak nie wiem jak sprawdzić czy liczba jest zapisana w tym systemie.

Z góry dziękuję za wszelką pomoc!  

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int i=0;
    int tab[30];
    printf ("Podaj odpowiednia liczbe: ");
    int liczba;
    scanf ("%d", &liczba);

    while (liczba>0)
    {
        tab[i]=liczba%7;
        i++;
        liczba=liczba/7;
    }

    for (int j=i-1; j>=0; j--)
        printf ("%d", tab[j]);

    return 0;
}

 

1 odpowiedź

+1 głos
odpowiedź 26 stycznia 2020 przez tangarr Mędrzec (154,860 p.)
wybrane 27 stycznia 2020 przez Michał2019
 
Najlepsza
1. Wczytaj liczbę jako napis (char[])

2. Sprawdź czy wszystkie znaki znajdują się w odpowiednim zakresie ('0' - '6')
komentarz 26 stycznia 2020 przez Michał2019 Nowicjusz (170 p.)
Nie wie za bardzo jak zrobić żeby program sprawdzał czy znaki są w odpowiednim zakresie :/
komentarz 26 stycznia 2020 przez tkz Nałogowiec (42,000 p.)

Ascii Table

Ciebie interesuje zakres od 48, do 54 włącznie. 

#include<stdio.h>
#include<string.h>
int main() {
   const char *str = "128345";
   
   for(int i = 0; i< strlen(str); i++)
        if((int)str[i]>=48 && (int)str[i]<=54 )
            printf("ok\n");
        else
            printf("nie ok\n");
   
   return 0;
}

 

komentarz 26 stycznia 2020 przez tangarr Mędrzec (154,860 p.)

Można to sprawdzić nawet łatwiej. Bez znajomości tabeli ascii.

if (str[i]>='0' && str[i]<='6') {}

 

komentarz 26 stycznia 2020 przez tkz Nałogowiec (42,000 p.)
Jasne, chciałem pokazać podłoże "problemu" i skąd wynika.
komentarz 26 stycznia 2020 przez Michał2019 Nowicjusz (170 p.)

Dzięki wszystkim za pomoc! 

Mam tylko jeszcze jedno pytanko, jeśli mam zadanie: "Napisz funkcję w języku C, która dla liczby całkowitej dodatniej n zwraca true, o ile liczba n zapisana w systemie pozycyjnym przy podstawie 7 jest palindromem", to czy ten program jest właściwy:

#include <stdio.h>
#include<string.h>

int main()
{
   int n, r = 0, t;
   printf("Podaj liczbe calkowita naturalna:\n");
   scanf("%d", &n);
   t = n;
   while (t != 0)
   {
      r = r * 10;
      r = r + t%10;
      t = t/10;
   }
   if (n == r){
    const char *str = "n";
       for(int i = 0; i< strlen(str); i++)
        if(str[i]>='0' && str[i]<='6')
            printf("TRUE\n");
        else
            printf("FALSE\n");
}
}

 

Podobne pytania

0 głosów
3 odpowiedzi 432 wizyt
+1 głos
1 odpowiedź 121 wizyt
pytanie zadane 18 października 2021 w Rozwój zawodowy, nauka, praca przez Rykez Początkujący (250 p.)
0 głosów
0 odpowiedzi 1,020 wizyt

92,575 zapytań

141,424 odpowiedzi

319,649 komentarzy

61,960 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...