C语言编程题目,有了还需要其详细解释

编写long(longs)函数,其功能是去除十进制整数s中的所有奇数数字,用这些数字构成一个最小数,函数返回该数编写main函数,接收键盘输入的一个长整形数,用该整数作为... 编写long (long s)函数,其功能是去除十进制整数s中的所有奇数数字,用这些数字构成一个最小数,函数返回该数
编写main函数,接收键盘输入的一个长整形数,用该整数作为实参调用arrange函数,将得到的最小数输出到屏幕上
测试数据:876531429
运行结果:13579
展开
 我来答
郝在益
2012-03-05 · TA获得超过2079个赞
知道小有建树答主
回答量:1496
采纳率:54%
帮助的人:619万
展开全部
很简单啊
追问
那你说啊
追答
# include 

long arrange(long i)
{
int t,a[20],j=0,k,r,y;
long sum = 0;

while (i>0)
{
t = i%10;
i = i/10;
if (1 == (t%2) )
{
a[j] = t;
j++;
}
}

for ( k=0; k<j-1; k++)
{
for (r=k+1; r<j; r++)
{
if(a[r]<a[k])
{
y = a[r];
a[r] = a[k];
a[k] = y;
}
}
}

for (k=0; k<j; k++)
{
sum = sum*10 +a[k];
}

return sum;
}

void main()
{
long i;
long sum = 0;

printf("请输入值:");
scanf("%d",&i);

printf("%ld\n",arrange(i) );

return;
}
满意请采纳!
愉锋n
2012-03-05 · TA获得超过361个赞
知道小有建树答主
回答量:274
采纳率:50%
帮助的人:222万
展开全部
#include <stdio.h>
#include <string.h>

void sort(short *p, int len)
{
int i,j, item;

for(i = 0; i < len-1; i++)
{
for(j = i + 1; j < len; j++)
{
if(*(p + i) > *(p + j))
{
item = *(p + i);
*(p + i) = *(p + j);
*(p + j) = item;
}
}
}
}

long func(long data)
{
short array[10];
int item, len, i = 0;
long result = 0;

memset(array, 0x00, 10 * sizeof(short));

for(; data/10 > 1; data = data/10)
{
item = data % 10;
if(item % 2 != 0)
{
array[i] = item;
i++;
}
}

if(data % 2 != 0)
{
array[i] = (short)data;
i++;
}
len = i;

sort(array, len);

for(i = len; i > 0; i--)
{
result = result * 10 + array[len - i];
}
return result;
}

int main(void)
{
long data_old = 0, data_new;
printf("please input your number: ");
scanf("%ld", &data_old);

data_new = func(data_old);

printf("\nresult is %ld\n", data_new);

return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式