//方法一,不需将转换后的字符存储在字符数组中#include<stdio.h>void change(int );int main(){ int n; scanf("%d",&n); change(n); printf("\n"); return 0; }void change(int num){ if(num==0)return ; change(num/10); printf("%d",num%10); }//方法二,先将转换后的字符存储在字符数组中#include<stdio.h>#define LEN 100int m=0;void change(int ,char *);int main(){ int n,i; char a[LEN]; for(i=0;i<LEN;i++) a[i]='\0'; scanf("%d",&n); change(n,a); printf("%s",a); printf("\n"); return 0; }void change(int num,char *s){ if(num==0)return ; change(num/10,s); s[m++]=(char)(num%10+'0');}
#include<stdio.h> int gnn(int e){ int j; int last=1; for(j=0;j<e;j++) { last=10*last; } return last;}void fun(long int n,int N) { int next; if(N<1) { printf("\""); return; } else { next=n/gnn(N-1); printf("%d",next); fun(n%gnn(N-1),N-1); } } void main() { long int n; printf("请输入所要转换的数字:"); scanf("%d",&n); int N=1; long int k=n/10; for(int i=0;k!=0;i++) { k=k/10; N++; } printf("转换后的输出为: "); printf("\""); fun(n,N); printf("\n"); //getch(); } 在VC++6.0上调试可以。希望是这个。O(∩_∩)O~
这个程序我们才做过的哈,就发给你吧#include<stdio.h>int t;void main(){ int num, p(int num); scanf ("%d", &num); t = num; printf ("=%d\n", p(num));}int p(int num){ int sum; extern t; if (num < 10) { sum = num; printf ("%d+", num); } else { sum = p(num/10) + num%10; printf ("%d", num%10); if (5 != num) printf ("+"); } return(sum);} 试过的,能行哈。希望对你有帮助。当然还有其他的方法,还需自己摸索
#include "stdio.h"char s[20]={0};int i=19;/*方法一:用全局变量和数组*/void fun(int n){ if(n>0) { s[--i]=n%10+'0'; fun(n/10); }}/*方法二,用静态变量和指针形参*/void fun2(int n,char *str){ static int k=0; if(n>0) { fun2(n/10,str); str[k++]=n%10+'0'; }}int main( ){ char str[20]={0}; /*方法一测试*/ fun(1234567); /*方法二测试*/ fun2(1234567,str); printf("%s\n\n",s+i); printf("%s\n",str); return 1;}超简单的程序,呵呵
#include <stdio.h> void shift(int x) { if(x/10==0) { printf("%2d",x%10);} else { shift(x/10); printf("%2d",x%10); }} void main() { int a; printf("input a number:"); scanf("%d",&a); shift(a); }