输出为笑脸?

abckangaroo 2009-08-11 06:50:03
/*
【问题描述】编写函数itob(n,s,b),用于把整数n转换成以b为基的字符串并存储到s中.
编写程序,使用函数itob(n,s,b)将输入的整数n,转换成字符串s,将s输出.转换后的字符串从最高的非零位开始输出。
如果n为负数,则输出的字符串的第一个字符为'-'。b为大于1小于37的任意自然数值。
当b=2时,输出字符只可能是'0'和'1';当b=16时,输出字符串中可能含有字符为'0'-'9','a'-'f'(字母以小写输出)。
b还可以是其它数值。比如输入n=33,b=17,则输出33的17进制值为"1g"。
【输入形式】控制台输入整数n和b,其中n可以为负数。n和b以空格分隔.
【输出形式】控制台输出转化后的字符串s.
【样例输入】5 2
【样例输出】101
【样例说明】5的二进制就是101
*/
#include <stdio.h>
void itob(int n,char s[],int b);

int main()
{
int n,b;
char s[100]={'\0'};
scanf ("%d %d",&n,&b);
if (n<0){
printf ("-");
n=-n;
}
itob(n,s,b);
printf ("%s\n",s);
return 0;
}

void itob(int n,char s[],int b){
int i,j,strlength;
char temp;
for (i=0;n!=0;i++){
s[i]=n%b;
n/=b;
}
strlength=i;

//颠倒数组元素
for (i=0,j=strlength-1;i<j;i++,j--){
temp=s[i];
s[i]=s[j];
s[j]=temp;
}
}
...全文
284 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
liao05050075 2009-08-11
  • 打赏
  • 举报
回复
void itob(int n,char s[],int b){
int i,j,strlength;
char temp;
for (i=0;n!=0;i++){
s[i]=n%b+'0';
n/=b;
}

69,364

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧