Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Funktion erstellen

Empfohlene Antworten

Veröffentlicht

hallo informatiker,

bin grad neu am programmieren, und weiss jetzt nicht unbedingt wie man sowas macht, und würde mich freuen wenn ihr mir elfen würdet:

also ich soll in der Sprache C eine Funktion int oddBits (int B) schreiben, die die Anzahl gesetzter Bits an ungeraden Positionen zurückliefert, also für eine Zahl b mit der Bitdarstellung b_n b_n-1 .... b_2 b_1 die summe

b_n-1 + b_n-3+ b_1 berechnet.

ich soll dabei eine Bitmaske verwenden, die ich von 1 bis INT_MAX/2 jeweils um 2 Bits nach links schiebe. INT_MAXist in limits.h definiert.

ich habe echt keine ahnung wie ich das machen soll, da ich bisher nicht soviel erfahrung mit programmieren gemacht habe und bitte um Lösungsvorschläge

lg

Zeig bitte ein wenig mehr Eigeninitiative. Wenn du nur die Aufgabenstellung ablädst, und behauptest, dass du "keine Ahnung" hast, liegt die Vermutung nahe, dass du nur jemanden suchst, der deine Hausaufgaben macht.

Die Aufgabenstellung enthält bereits eine ziemlich detaillierte Anleitung, wie die Aufgabe zu lösen ist.

ich bin nicht so sicher aber ich habe mal so angefangen:

#include <stdio.h>

main ()

{

int b;

also ich nehme hier die eingangszahl b,

jetzt muss ich ja irgendwie die zahl der gesetzten bits nehmen welche am anfang 0 ist, also n=0

ich weiss nicht wie ich das machen soll, und wie es weiter geht, es ist nciht meine absicht einfach die lösung kriegen. will es auch verstehn

danke lg

Du brauchst eine Funktion, die int zurückgibt, oddBits heißt und einen int-Parameter mit Namen b hat. In dieser Funktion brauchst du eine weitere int-Variable für die Maske, die du mit 1 initialisierst, sowie einen Zähler, den du mit 0 initialisierst. Dann machst du in einer Schleife eine bitweise-Und-Verknüpfung zwischen b und der Maske. Wenn dabei nicht 0 herauskommt, erhöhst du den Zähler um 1. Danach schiebst du die Maske um 2 nach links und beginnst von vorn. Die Schleife musst du so lange durchlaufen, wie Maske <= INT_MAX/2 ist. Dann gibst du den Zähler zurück.

danke für ihre antwort, aber mein problem ist das ganze jetzt in c++ zu schreiben, war denn überhaupt mein anfang richtig

danke für ihre antwort, aber mein problem ist das ganze jetzt in c++ zu schreiben,

Eigentlich habe ich bereits den größten Teil der Arbeit gemacht, denn das, was ich geschrieben habe, kann man 1 zu 1 in Code umsetzen. Wenn du das nicht kannst, kannst du einfach nicht genug C++, um diese Aufgabe zu lösen.

war denn überhaupt mein anfang richtig

Nein.

Den Header stdio.h gibt's in C++ nicht, die main-Funktion muss int zurückgeben und überhaupt sollst du ja eine zusätzliche Funktion schreiben.

Wer gibt denn jemandem, der offenbar gar kein C++ kann, so eine Aufgabe?

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.