一段C++程序找错

来源:百度知道 编辑:UC知道 时间:2024/05/06 12:40:13
#include <iostream>
#include <cmath>
using namespace std;
int main ()
{
while (1) {
int p,n;
double i=0;
cout<<"what will you change:"<<endl;
cin>>n;
double s;
do {
p=n%2;
n=(n-p)/2;
if (i=0) {
s=1.00*p;
i=i+1;
}
else {
s=(pow(10,i)*p)+s;
i=i+1;};
} while (n<2);
s=pow(10,i)*n+s;
cout<<"answer:"<<s<<endl;};
}

请问我想将十进制转成二进制,为什么不行?

1 code改成:
#include "stdafx.h"
#include "iostream"
#include <stdlib.h>
#include <math.h>
#include <conio.h>
using namespace std;
int main ()
{
while (1)
{
int p, n;
int i = 0;
cout<<"what will you change:"<<endl;
cin>>n;
double s;
do
{
p = n % 2;
n = (n - p) / 2;
if (0 == i) //old error
{
s = 1.00 * p;
i = i + 1;
}
else
{
s = (pow(10.0, i) * p) + s; //old error
i = i + 1;
};
} while (n > 1);//old error
s = pow(10.0, i) * n + s; //old error
cout<<"answer:"<<s<<endl;
};