C语言编程题目,有了还需要其详细解释
编写long(longs)函数,其功能是去除十进制整数s中的所有奇数数字,用这些数字构成一个最小数,函数返回该数编写main函数,接收键盘输入的一个长整形数,用该整数作为...
编写long (long s)函数,其功能是去除十进制整数s中的所有奇数数字,用这些数字构成一个最小数,函数返回该数
编写main函数,接收键盘输入的一个长整形数,用该整数作为实参调用arrange函数,将得到的最小数输出到屏幕上
测试数据:876531429
运行结果:13579 展开
编写main函数,接收键盘输入的一个长整形数,用该整数作为实参调用arrange函数,将得到的最小数输出到屏幕上
测试数据:876531429
运行结果:13579 展开
2个回答
展开全部
很简单啊
追问
那你说啊
追答
# 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;
}
满意请采纳!
展开全部
#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;
}
#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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询