我自己编了一下...可以将数字的各位分离出来....并求出最大和最小值..不过这个小程序只能处理INT型数据....如果想处理LONG等..自己再看看吧...
#include
#include //使用itoa,将一整型数转化成字符串
#include
#include
int main()
{
const int ARRAY_SIZE = 20;
int value,length,max,min;
char buffer[ARRAY_SIZE];
int num[ARRAY_SIZE];
printf("Please enter one number:");
scanf("%d",&value);
length = strlen(itoa(value,buffer,10));
for(int i=length-1; i>=0; i--)
{
num[i] = value / (int)pow(10,i);
value = value % (int)pow(10,i);
printf("%d\t",num[i]);
}
printf("\n");
max = num[0];
min = num[0];
for(i=length-1; i>0; i--)
{
if(max < num[i])
max = num[i];
if(min > num[i])
min = num[i];
}
printf("THe min number is: %d\nThe max number is: %d\n",min,max);
return 0;
}
----------------解决方案--------------------------------------------------------
LZ```要知道你输入的一个整数```有多少位不知道````
如果从键盘输入```你又何必去想``怎么拆开它呢````
使用``getchar( )``不就等于把数拆开了吗````
然后你要做什么操作就不知道````有需要```你可以 getchar()-'48' ```
如果是用函数的功能实现``那么上面的办法肯定就不能用了``
我提供的方法是 一个循环``` n是要拆的数p指向一个数组```
void chaishu ( long n , int *p )
{
while ( n )
{
*p++ = n%10 ;
n /= 10 ;
}
return ;
}
----------------解决方案--------------------------------------------------------
楼上的那位,你上面的程序是否看懂了啊....?程序能处理任意长度的整形数....如果要用函数封装,你的那个办法可行么...函数需要的参数是一个整数哦...你那样可以么....
以上是本人的看法...
----------------解决方案--------------------------------------------------------
汗了
while(num)
{
data[num%10]++;
num/=10;
}
然后要最大的则从9开始循环,要最小则从1开始循环(记得从1开始得到一个数后要回到0处循环)
比如
0 1 2 3 4 5..
2 0 3 0 1..
得到的结果是200224..
----------------解决方案--------------------------------------------------------
不用那么复杂哟
要每一位的数字吧
int main()
{
int i=0
char a[100]={0};
gets(a);
while(a[i++]);
i-=2;
//a[0]就是最高位 a[i]就是个位
return 0;
}
----------------解决方案--------------------------------------------------------
看热闹
----------------解决方案--------------------------------------------------------
实验了N天,今天终于有了灵感,搞定了。大家看看我的程序,给点意见,谢谢大家.
#include
#include
main ()
{
char num[11] ,temp ; //定义一个数组存储输入的数字,这样方便取得数字长度
short i, j, a, a2 ;
scanf("%s",num);
a=strlen(num); //用一个函数求得数字(字符串)长度,方便下面循环使用
a2=a-1; //用于排序
for (i=1; i
{
for (j=0; j<=a2-i; j++)
{
if (num[j] > num[j+1])
{
temp=num[j]; num[j]=num[j+1]; num[j+1]=temp;
}
}
}
for (i=0; i