#include<stdio.h> #define LENGTH 10 void IntToChar(int *p,int k,int n) { if(k!=0) { *(p+k--)=n%10+48;/*在ascii中的码的顺序,相差的值为48*/ IntToChar(p,k,n/10); } else { *(p+k)=n+48; return; } /*如果n是一位数,则*(p+0),即a[0]等于此数,对于多位数,已除到数的最高位*/ } void main() { int a[LENGTH],i,j=0,n,m; /*j用于判断输入数n是几位数*/ printf("Please input the integer wanted to change:\n"); scanf("%d",&n); m=n; /*m仅为方便下步while循环中判断n为几位数的参数*/ while(m/10!=0) /*while循环中判断n为几位数*/ { m=m/10; j++; } IntToChar(a,j,n); /*a[LENGTH]为存储转化后字符的数组*/ printf("The changed char is:\n"); for(i=0;i<=j;i++) printf("%c",a[i]); } /*说明:*//*由于各种c编译器对int型数据的取值范围不一样,可能会有不同的结果*/ /*Turbo C 中int的范围为不能超过32767*/

评论