English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C-Programm überprüft, ob die Zahl einer bestimmten Basis gehört

gegebene Zahl als Zeichenkette und Basis; die Aufgabe ist zu überprüfen, ob die gegebene Zahl zu der Basis gehört.

Wir müssen die Zahl und die Basis nach dem numerischen System überprüfen, wobei es2eine zweistellige Zahl,8eine achzehnstellige Zahl,10eine zehnstellige Zahl und16eine sechzehnstellige Zahl. Daraus müssen wir bestimmen, ob die angegebene Zahl in der Zeichenkette zu einer bestimmten Basis gehört, und wenn sie gehört, muss auf dem Ausgabescreen "Ja" gedruckt werden; sonst wird auf dem Ausgabescreen "Nein" angezeigt.

Wie wir wissen, ist die Zahl/Der Ausdruck " 1A6" hat die Basis16, während " 1010" hat die Basis2, aber dies kann durch eine intuitive Analyse bestimmt werden, jetzt müssen wir eine Methode finden, um das Problem zu lösen. Programm.

Beispiel

Eingabe: str = "1010, base =2
Ausgabe: Ja
Eingabe: str = "1AA4, base = 16
Ausgabe: Ja
Eingabe: str = "1610, base = 2
Ausgabe: Kein

ist die Methode, die wir verwenden, um das Problem zu lösen-

  • Überprüfen Sie, ob die Basis in2bis16zwischen

  • Dann wird überprüft, ob jede Ziffer in der Zeichenkette strig zu einer bestimmten Basis gehört.

  • Wenn es gehört, dann gibt true zurück, sonst gibt false zurück.

Algorithmus

Start
Schritt 1 -> In der Funktion bool isInGivenBase(char str[], int base)
   Wenn base > 16 then,
      Rückgabe false
   Sonst Wenn base <= 10 then,
   Schleife Für i = 0 und i < strlen(str) und i++
      Wenn !(str[i] >= '0' und str[i] < ('0 + then,
         Rückgabe false
      Sonst
      Schleife Für i = 0 und i < strlen(str) und i++
         Wenn NICHT ((str[i] >= '0' && str[i] < ('0' + base)) ||
            (str[i] >= 'A' && str[i] < ('A' + base - 10) ) dann,
            Rückgabe false
            Rückgabe true
   Schritt 2 -> In der Funktion int main()
      Setze str[] = {"AF",87"});
      Wenn isInGivenBase(str, 16) dann,
         Drucke "Ja "
      Sonst
         Drucke "Nein "
Stop

Beispiel

#include <ctype.h>
#include <stdio.h>
#include <string.h>
bool isInGivenBase(char str[], int base) {
   //Zulässige Basen sind16(hexadezimal)
   if (base > 16))
      return false;
      //Wenn die Basis kleiner oder gleich10sein
      // Die Ziffernanzahl muss zwischen 0 und9.
   else if (base <= 10)) {
      for (int i = 0; i < strlen(str); i++))
      if (!(str[i] >= '0' and
         str[i] < ('0' + base)))
         return false;
   }
   //Wenn die Basis kleiner oder gleich16sein
   //Die Zahl muss zwischen 0 und9oder 'A'
   else {
      for (int i = 0; i < strlen(str); i++))
      if (! ((str[i] >= '0' &&
         str[i] < ('0' + base)) ||
         (str[i] >= 'A' &&
         str[i] < ('A' + base - 10))
      ))
      return false;
   }
   return true;
}
// Fahrercode
int main() {
   char str[] = {"AF",87"});
   if (isInGivenBase(str, 16))
      printf("yes\n");
   else
      printf("No\n");
   return 0;
}

Ausgabeergebnis

ja