以下 是我编的十进制转化为七进制的程序,这是个错误的程序,我怀疑是指针用错了,请教怎么错了?
#include <stdio.h> #include <stdlib.h>
void turn_seven(int *t,int *len,int *m);
int main(){ /*ncase表示有n组数据 *指针t用来存储转化后7进制的每个数 *n表示输入的十进制数,即待转化的数 *len来统计t的长度*/ int ncase,*t=0,final=0,n,len=0,i; scanf("%d",&ncase); while (ncase>0){ scanf("%d",&n); turn_seven(t,&len,&n); for(i=0;i<len;i++) final=final*10+*t--; printf("%d\n",final); ncase--; } system("pause"); return 0;}
void turn_seven(int *t,int *len,int *m){ if (*m/7){ *t++=*m%7; *m=*m/7; ++*len; turn_seven(t,len,m); } else *t=*m/7; }
#include <stdio.h> #include <stdlib.h>
void turn_seven(int *t,int *len,int *m);
int main(){ /*ncase表示有n组数据 *指针t用来存储转化后7进制的每个数 *n表示输入的十进制数,即待转化的数 *len来统计t的长度*/ int ncase,*t=0,final=0,n,len=0,i; scanf("%d",&ncase); while (ncase>0){ scanf("%d",&n); turn_seven(t,&len,&n); for(i=0;i<len;i++) final=final*10+*t--; printf("%d\n",final); ncase--; } system("pause"); return 0;}
void turn_seven(int *t,int *len,int *m){ if (*m/7){ *t++=*m%7; *m=*m/7; ++*len; turn_seven(t,len,m); } else *t=*m/7; }