c语言,求将一个十进制的数转化为一个任意进制的数。求解决我的程序的问题,谢啦。

#include<stdio.h>#include<conio.h>#include<malloc.h>structnode{intdata;structnode*lin... #include<stdio.h>
#include<conio.h>
#include<malloc.h>
struct node{
int data;
struct node*link;
};
struct node*top=NULL;
void jinzhizuanhuan(int,int);
void display();
void main(){
int a,b;
printf("请输入你想要转换的数和要转换的进制:\n");
scanf("%d,%d",&a,&b);
jinzhizuanhuan(a,b);
display();
}
void jinzhizuanhuan(int n,int m )
{struct node*temp;
temp=(struct node*)malloc(sizeof(struct node));
if(temp==NULL)
printf("\n栈已满.");
while(n!=0)
{temp->data=n%m;
temp->link=top;
top=temp;
n=n/m;
}
}
void display()
{struct node*top1;
int item;
top1=top;
if(top1=NULL)
return;
while(top1!=NULL)
{item=top1->data;
printf("%d",item);
top1=top1->link;
}
}
展开
 我来答
986850427
2012-04-18 · TA获得超过166个赞
知道答主
回答量:94
采纳率:0%
帮助的人:78.3万
展开全部
你好!问题解决如下代码所示^-^
#include<stdio.h>
#include<conio.h>
#include<malloc.h>
struct node
{
int data;
struct node*link;
};
struct node*top=NULL;
void jinzhizuanhuan(int,int);
void display();
void main()
{
int a,b;
printf("请输入你想要转换的数(十进制):");
scanf("%d",&a);
for(;;)
{
printf("要转换的进制(大于1的整数):");
scanf("%d",&b);
if(b>1)//不存在1进制的数,数据的进制都大于1
break;
}
jinzhizuanhuan(a,b);
display();
}
void jinzhizuanhuan(int n,int m )
{
struct node*temp;
temp=(struct node*)malloc(sizeof(struct node));
if(temp==NULL)
printf("\n栈已满.");
while(n!=0)
{
temp->data=n%m;
temp->link=top;
top=temp;
n=n/m;
temp=(struct node*)malloc(sizeof(struct node));//这里还要新开辟新的内存空间,存储进制数的又一位
if(temp==NULL)
printf("\n栈已满.");
}
free(temp);//清除多开辟的空间
}
void display()
{
struct node*top1;
int item;
top1=top;
if(top1==NULL)//这里不能top1=NULL,这是赋值运算
return;
while(top1!=NULL)
{
item=top1->data;
printf("%d ",item);
top1=top1->link;
}
printf("\n");
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式