#include<iostream>
using namespace std;
int main()
{
int n,k=0,a[1000]={0};
cout<<"請輸入一個正整數n!"<<endl;
cin>>n;
cout<<"n的余數為:";
while(n!=0)
{
a[k]=n%2;
k++;
n/=2;
}
for(int j=k-1;j>=0;j--)
cout<<a[j];
cout<<endl;
system("pause");
return 0;
}
uj5u.com熱心網友回復:
你的while和for不是回圈嗎?uj5u.com熱心網友回復:
回圈出來有誤,是陣列上面的問題uj5u.com熱心網友回復:
我要的是可以重復多次輸入一個正整數,然后運行。 我之前用了回圈陳述句,第一次輸入10,結果為:1010;再接著輸入11,結果就變成了:10111010。我想解決這個問題,怎么才能得到想要的結果,用陣列。
uj5u.com熱心網友回復:
回圈每次開始的時候k=0;uj5u.com熱心網友回復:
#include <iostream>
#include <string.h>
using namespace std;
int main(int argc, char *argv[])
{
int sjz;
char ejz[33];
while(1)
{
memset(ejz, '\0', sizeof(ejz));
cout<<"pls input a num(<=32bit, signed):";
cin>>sjz;
for(int i=0; i<32; i++)
{
ejz[i] = '0' + ((sjz >> i) & 0x01);
}
cout << ejz << endl;
}
return 0;
}
uj5u.com熱心網友回復:
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
while(1)
{
int sjz;
char ejz[33] = {0};
cout<<"pls input a num(<=32bit, signed):";
cin>>sjz;
for(int i=0; i<32; i++)
{
ejz[i] = '0' + ((sjz >> i) & 0x01);
}
cout << ejz << endl;
}
return 0;
}
uj5u.com熱心網友回復:
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
while(1)
{
int sjz;
char ejz[33] = {0};
cout<<"pls input a num(<=32bit, signed):";
cin>>sjz;
for(int i=0; i<32; i++)
{
ejz[31-i] = '0' + ((sjz >> i) & 0x01);
}
cout << ejz << endl;
}
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/66044.html
標籤:基礎類
