当你用一个标示符等于一个函数的时候 是将函数的返回值复值给标示符
不过我不知道 printf函数的返回值是什么 甚至不知道他有没有返回值
将这行改成bcd=a;printf("%x=",a); 就没问题了
动于心而静如水
//堆栈的基本操作与应用练习(数据的进制转换) //首先由用户输入两个整数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编辑过]