基本上我只是想創建一個程式,在檢查數字是二進制后交換二進制數。我和哈利一起從名為代碼的 youtube 頻道觀看了教程 22,他做了類似型別的代碼,我想我會自己做一些像他一樣的事情,但又有所不同
這是我寫的代碼
#include <iostream>
#include <string>
using namespace std;
// A program to check binary number and interchange 0's and 1's
class binarychange{
string s;
public:
void read(void);
void chk_bin(void);
void change(void);
void display(void);
};
void binarychange :: read(void){
cout<<"enter a binary number"<<endl;
cin>>s;
}
void binarychange :: chk_bin(void){
for (int i = 0; i < s.length(); i )
{
if(s.at(i)!='0' && s.at(i)!='1'){
cout<<"Invalid binary format"<<endl;
}
}
}
void binarychange :: change(void){
for (int i = 0; i < s.length(); i )
{
if (s.at(i)==0)
{
s.at(i)=1;
}
else{
s.at(i)=0;
}
}
}
void binarychange :: display(void){
cout<<"Displaying your binary number"<<endl;
for (int i = 0; i < s.length(); i )
{
cout<<s.at(i);
}
cout<<endl;
}
int main(){
binarychange b;
b.read();
b.chk_bin();
b.display();
b.change();
b.display();
return 0;
}
我得到的輸出
enter a binary number
101
Displaying your binary number
101
Displaying your binary number
我想要的輸出
enter a binary number
101
Displaying your binary number
101
Displaying your binary number
010
uj5u.com熱心網友回復:
的值s.at(i)是一個字符,而不是整數,因此您應該測驗 for s.at(i)=='0',而不是s.at(i)==0在binarychange :: change方法中。因此,您應該分別分配'1'or'0'代替1or 0。
uj5u.com熱心網友回復:
嘿伙計們,我得到了答案,愚蠢的我只是被一個小錯誤擊中了
正確的代碼應該是
#include <iostream>
#include <string>
using namespace std;
// A program to check binary number and interchange 0's and 1's
class binarychange{
string s;
public:
void read(void);
void chk_bin(void);
void change(void);
void display(void);
};
void binarychange :: read(void){
cout<<"enter a binary number"<<endl;
cin>>s;
}
void binarychange :: chk_bin(void){
for (int i = 0; i < s.length(); i )
{
if(s.at(i)!='0' && s.at(i)!='1'){
cout<<"Invalid binary format"<<endl;
exit(0);
}
}
}
void binarychange :: change(void){
for (int i = 0; i < s.length(); i )
{
if (s.at(i)=='0')
{
s.at(i)='1';
}
else{
s.at(i)='0';
}
}
}
void binarychange :: display(void){
cout<<"Displaying your binary number"<<endl;
for (int i = 0; i < s.length(); i )
{
cout<<s.at(i);
}
cout<<endl;
}
int main(){
binarychange b;
b.read();
b.chk_bin();
b.display();
b.change();
b.display();
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/372513.html
