输入一个数,比如12345;
把它每个数字转入数组中比如使得:a[0]=1;a[1]=2……;
有没有这方面的函数啊??如果没有那怎么才能转换呢??
输入一个数,比如12345;
把它每个数字转入数组中比如使得:a[0]=1;a[1]=2……;
有没有这方面的函数啊??如果没有那怎么才能转换呢??
我想是有这种函数的,但是要求你自己编写
main() { char *s; int *a,n;
gets(s);/*输入一串数字,任意大小*/
a=(int *)malloc(strlen(s)); /*开辟内存一个地方用来放结果*/
for(n=0;n<strlen(s);n++) /*开始转换*/ a[n]=s[n]-'0';
for(n=0;n<strlen(s);n++) /*输出结果*/ printf("%d ",a[n]); getch(); free(a); /*释放内存*/ }
这样做主要是为了逃开变量有最值的限制~
我想用这个程序,但是输出的结果不知为何不对啊
#include "stdio.h" main() { int n=95859,*a,x,k,z; k=-1; while(n!=0) {x=n%10; k++; a[k]=x; n=(int)(n/10); } for(z=k;z>=0;z--) printf(" %d",a[z]); }
好像是没有错误的啊,但是就不知为什么不对??
晕,错漏百出~~ 因为正在重新安装系统,没有C编辑器,不能帮你看还有什么错~~不过一眼看过去就发现致命的错误到是有两个
[1] n=95859 这个超过了int的范围
[2] 指针a没有给他赋值就直接使用了
那里改成long n=95859;就行了
现在有新问题啊,我把逐个数字存入数组后,想判断是不是回文数,就像95859,正反都一样。
能不能指点一下怎么写判断那句啊。
你理解错我的思路了,我是想把输入的数字按照字符串来处理,这样就逃避了整形变量的最值问题,我的程序可以输入像1999999999999这样超级长的,因为程序仅仅是把它看成是一个字符串而已。
你硬是要把我的s定义为int,你凭什么定义我的s,这个是我的代码,有版权的哦
你理解错我的思路了,我是想把输入的数字按照字符串来处理,这样就逃避了整形变量的最值问题,我的程序可以输入像1999999999999这样超级长的,因为程序仅仅是把它看成是一个字符串而已。
你硬是要把我的s定义为int,你凭什么定义我的s,这个是我的代码,有版权的哦
哇靠,我知道你的本意,那如果这个数接下来要用来计算那怎么办?还char个鬼啊!