C语言输入一个八进制字符串 输出其十进制字符串 要求最后printf是%s。。。

 我来答
M丶小民子
推荐于2018-04-05 · TA获得超过185个赞
知道小有建树答主
回答量:122
采纳率:0%
帮助的人:99.7万
展开全部
main()
{
char *p,s[6];
int n;
p=s;
gets(p);
n=0;
while(*(p)!='\0')
{
n=n*8+*p-'0';
p++;
}
printf("%d",n);
}
追问
要求printf("%s",n);
可以吗?
追答
这个就不懂了。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友2aca9d6
2013-05-25 · 超过17用户采纳过TA的回答
知道答主
回答量:42
采纳率:0%
帮助的人:45.3万
展开全部
me@ubuntu:gcc$ ls
filename.c
me@ubuntu:gcc$ cat filename.c
#include <stdio.h>

int main(int argc, char* argv[])
{
int octNumber = 0;

printf("input:");
scanf("%o", &octNumber);
printf("output=%d\n", octNumber);

return(0);
}
me@ubuntu:gcc$ gcc filename.c -o filename
me@ubuntu:gcc$ ls
filename filename.c
me@ubuntu:gcc$ ./filename
input:011
output=9
me@ubuntu:gcc$ ./filename
input:17
output=15
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wickwm
2013-05-25
知道答主
回答量:33
采纳率:0%
帮助的人:9万
展开全部
高精度任意进制转换
#include <iostream>
#include <string>
using namespace std;
char s[1000],s2[1000]; // s[]:原进制数字,用字符串表示,s2[]:转换结果,用字符串表示
long d1,d2; // d1:原进制数,d2:需要转换到的进制数
void conversion(char s[],char s2[],long d1,long d2)
{
long i,j,t,num;
char c;
num=0;
for (i=0;s[i]!='\0';i++)
{
if (s[i]<='9'&&s[i]>='0') t=s[i]-'0'; else t=s[i]-'A'+10;
num=num*d1+t;
}
i=0;
while(1)
{
t=num%d2;
if (t<=9) s2[i]=t+'0'; else s2[i]=t+'A'-10;
num/=d2;
if (num==0) break;
i++;
}
for (j=0;j<=i/2;j++)
{c=s2[j];s2[j]=s2[i-j];s2[i-j]=c;}
s2[i+1]='\0';
}
int main()
{
while (1)
{
cin>>s>>d1>>d2;
conversion(s,s2,d1,d2);
cout<<s2<<endl;
}
return 0;
}

任意进制转化
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式