| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1208 人关注过本帖
标题:请教进制的转化
只看楼主 加入收藏
poppylx
Rank: 1
等 级:新手上路
帖 子:367
专家分:0
注 册:2004-9-27
收藏
得分:0 
bcd = printf("%d",a);    //问题肯定是出在这里   至于原因我不知道   
当你用一个标示符等于一个函数的时候   是将函数的返回值复值给标示符
不过我不知道  printf函数的返回值是什么    甚至不知道他有没有返回值

将这行改成bcd=a;printf("%x=",a);  就没问题了

动于心而静如水
2005-03-15 16:43
poppylx
Rank: 1
等 级:新手上路
帖 子:367
专家分:0
注 册:2004-9-27
收藏
得分:0 
刚刚分析了下    printf的有返回值   且值为3       (我不知道为什么)
这样你的printf("%d",a);输出 255      printf("%d",bcd);输出3
得到2553的结果

PS:建议以后在两个输出函数中间用空格或者回车隔开

动于心而静如水
2005-03-15 16:47
zhat813
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2005-3-14
收藏
得分:0 
就是,我也疑惑啊,前面是答案,后面是这个数的位数,郁闷·#·¥·¥
2005-03-15 16:54
zhat813
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2005-3-14
收藏
得分:0 
printf("%d",a);输出 255   
printf("%d",bcd);输出3
得到2553的结果  ——————就是这个原因,如果我不要printf("%d",bcd)这条语句,而是直接用bcd=printf("%d",a);这样直接赋给bcd行不行?得出的bcd是不是255?
2005-03-15 17:02
zhat813
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2005-3-14
收藏
得分:0 
明白,谢谢~~~~~~~~~~~~~~~~~~
2005-03-15 17:16
zhtmark
Rank: 1
等 级:新手上路
帖 子:100
专家分:0
注 册:2005-3-25
收藏
得分:0 

//堆栈的基本操作与应用练习(数据的进制转换) //首先由用户输入两个整数m.n然后将十进制n转换为m进制数,并显示在屏幕上 //要求和说明: //1.基本操作必须写成过程或函数,主函数只能调用他不准在主函数操作堆栈指针 //2.可处理任意进制数 //3.m的取值范围是236

#include"stdio.h" #include"stdlib.h"

struct node //这是定义的结构体(栈的基本结构) { int d; struct node *next; };

/////////////////////////////////分函数////////////////////////////////

struct node * duizhan(struct node *top,int x) //堆栈开辟和存储 { struct node *p; p=(struct node*) malloc(sizeof(struct node)); //开辟空间把首地址给p p->d=x; //新的空间的值域部分赋键盘输入值 if(top==NULL) { top=p; p->next=NULL; } else { p->next=top; top=p; } return(top); }

struct node * chuli(int m,int n) //处理数据并存入堆栈 { struct node *top=NULL; int i=0; int k; for(;n!=0;i++) { k=n%m; n=(n-k)/m; top=duizhan(top,k); } return(top); }

void pp(struct node *top) { int n=0; struct node *q,*p; p=top; while(p!=NULL) //用循环的方式打印线性单链表 { n++; //'n'为换行变量 printf("%3d",p->d); if(n%12==0) printf("\n"); //换行语句 q=p; p=p->next; free(q); //释放q所指向的空间(一个结构体变量) } } ///////////////////////////////////////////////////////////////////////

///////////////////////////////主函数/////////////////////////////////// void main() { int m=0,n=0; printf("请输入想处理的数(0-32767):"); scanf("%d",&n); printf("请输入想把他处理成几进制的数(2-236):"); scanf("%d",&m); pp(chuli(m,n)); //打印并处理函数 printf("\n"); } ////////////////////////////////////////////////////////////////////////

[此贴子已经被作者于2005-3-31 15:22:10编辑过]


zhtmark QQ:451361060
2005-03-31 14:57
快速回复:请教进制的转化
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.036657 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved