C语言编程题!!急!!把一个八进制数转换成十进制输出!!

#include<stdio.h>#include<math.h>intmain(){intx;intn=0,k,s=0;scanf("%i",&x);for(;x>=(... #include<stdio.h>
#include<math.h>
int main()
{
int x;
int n=0,k,s=0;
scanf("%i",&x);
for(;x>=(pow(10,n));n++);
for(;n>=0;n--)
{
k=x/(pow(10,n));
x=x-k*(pow(8,n));
s=s+k*(pow(8,n));
}
printf("%i",s);
}

错在哪??哦运行之后输出的都是原数据。
如输入 77
输出的还是77
展开
 我来答
9404linxinfa
2014-04-18 · 超过38用户采纳过TA的回答
知道小有建树答主
回答量:305
采纳率:0%
帮助的人:103万
展开全部

这是我写的可以讲任意进制数转化为十进制的


#include <iostream>

using namespace std;

int Multiply(int a,int b)

{

int aa=a;

if(b== 1) return 1;

else if(b== 2) return a;

for(int i=0;i<(b-2);++i)

{

a*=aa;

}

return a;

}

int main(int argc,char **argv)

{

while(1)

{

cout<<"请输入数字:";

char szInput[128];

cin>>szInput;

cout<<"数字的进制数:";

int i;

cin>>i;

int sum=0;

int k=0;

for(int j=strlen(szInput);j>0,k<strlen(szInput);--j,++k)

{

int dwInputbit=0;

memcpy(&dwInputbit,&(szInput[k]),1);

dwInputbit-=48;

sum+=(Multiply(i,j)*dwInputbit);

}

cout<<"对应的十进制数为:"<<sum<<endl;

}




return 0;

}


运行

更多追问追答
追问
大神,作为一个初学者我只想知道自己哪里错了啊。。。。而且你写的里面好多我们都还没学啊
追答
你的pow函数哪里来的?
leiqianlq
2014-04-18 · TA获得超过115个赞
知道小有建树答主
回答量:624
采纳率:0%
帮助的人:274万
展开全部
for(;x>=(pow(10,n));n++); 这个是无限循环把
追问

不是啊 我输入77 在n=2后,77<10^2.循环结束啊,而且如果是无限循环那我再运行时系统应该报错啊,但他有输出数据啊
追答
还是 我给你写个简单的把

public static void main(String[] args) {
int n = 545743532;

String s = String.valueOf(n);
int len = s.length();
long val = 0 ;
int temp = 0;
for(int i=0;i<len;i++)
{
String c = s.charAt(i)+"";
temp = Integer.valueOf(c).intValue();
//取出每一位 的值 * 8 的 len-1 次方
val += temp*Math.pow(8, len-i);
}
System.out.println(val);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
潜流Surging
2014-04-18 · 超过18用户采纳过TA的回答
知道答主
回答量:47
采纳率:0%
帮助的人:35.8万
展开全部
//处应该是pow(10,n)
#include<stdio.h>
#include<math.h>
int main()
{
int n=0,k,s=0,x;
scanf("%i",&x);
for(;x>=(pow(10,n));n++);
for(;n>=0;n--)
{
k=x/(pow(10,n));
//
x=x-k*(pow(10,n));
s=s+k*(pow(8,n));
}
printf("%i",s);
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式