Hey Leute ich versuche, einen C++ Code zu schreiben, um die Anzahl der gesetzten Bits in einem Array von Zahlen zu überprüfen.brauche Hilfe in einfachen C++ Code
zum beispiel zuerst ich frage wie viele zahlen ich will und dann ich diese nummern in einem array dann ich loop durch jede nummer im array und wandeln sie in binär. Wenn alle Bits für eine Zahl gesetzt sind, muss ich JA drucken und wenn nicht, dann NEIN. z. B. 7 ist 111, daher sind alle Bits gesetzt, also drucke ich JA.
aber ich bekomme einen Kompilierfehler, der ist: 'x' wurde in diesem Bereich nicht deklariert und erwartet, oder; vor {sowohl die Fehler in Zeile 9, die das hier ‚int checkbit(x){
‘ ist mein Code
#include <iostream>
#include <conio.h>
#include<math.h>
#include<stdlib.h>
using namespace std;
int b[20],c[50];
int checkbit(x){
int z, i=0;
while(x>1){
if(x==1)
c[i]==x;
z=x%2;
x=x/2;
c[i]=z;
++i;
}
while(i>=0){
z= c[i];
if(z==0)
return -1;
--i;
}
return 0;
}
int main(void){
int a;
cout<<"Enter the quantity of numbers you want";
cin>>a;
cout<<"Now Enter all the numbers you want";
for(int i=0;i<a;i++)
cin>>b[i];
cout<<"Checking for set bits please wait";
for(int i=0;i<a;i++){
if(checkbit(b[i])==-1)
cout<<"NO";
cout<<"YES";
}
return 0;
}
mir bitte sagen, was los ist, und mein Code auch richtig
Nur um zu klären, ist diese Zeile 9 'x = x/2;'? Was ist auch der Zweck dieses 'if (x == 1) c [i] == x;' Wollen Sie die Werte vergleichen oder zuordnen? – PeskyPotato
Zeile Nr. 9 ist das "int checkbit (x) {" und wie für wenn (x == 1) c [i] == x; Ich möchte die while unterbrechen, wenn x 1 erreicht, weil ich neben dem Modul auch x durch 2 dividiere. Wenn x am Ende 1 erreicht, möchte ich das im Array speichern und die while-Schleife durchbrechen –
Nun, in diesem Fall @ Mikael-faust wie andere unten erwähnt haben sollte es "int checkbit (int x) {'. Das erste "int" ist der Rückgabetyp der Methode und das zweite "int" ist der Typ des übergebenen Parameters. – PeskyPotato