试题:第四届C语言复赛(1)

来源:百度知道 编辑:UC知道 时间:2024/06/16 04:43:54
编写一个程序,让它有以下功能:从键盘上输入一个五位数,对此整数中的五个数值进行从大到小排序,形成一个新的五位数,输出这个整数。

#include <stdio.h>

void main()
{
int num, digits[5], i ,j , k, l, t;
l = 0;

scanf("%d", &num);

while (num)
{
digits[l++] = num % 10;
num /= 10;
}

for (i = 0; i < l-1; ++i)
{
k = i;

for (j = i + 1; j < l; ++j)
{
if (digits[k] < digits[j])
{
k = j;
}
}

if (k != i)
{
t = digits[i];
digits[i] = digits[k];
digits[k] = t;
}
}

for (i = 0; i < l; ++i)
printf("%d", digits[i]);

putchar('\n');
}

//运行正确
#include<stdio.h>
void main()
{
int n,i,j,a[5],t;
printf("Input a number(10000~99999):\n");
scanf("%d",&n);
for(i=0;i<5;i++){ //取各位的数
a[i]=n%10;
n/=10;
}
for(i=0;i<4;i++) //对咯位数冒泡法排