发布网友 发布时间:2024-10-24 16:26
共3个回答
热心网友 时间:2024-11-05 23:41
/*
编写一个程序,让它有以下功能:从键盘上输入一个五位数,对此整数中的五个数值
进行从大到小排序,形成一个新的五位数,输出这个整数。(15分)
*/
#include<stdio.h>
#include<conio.h>
void main()
{
long x;
/*用数组a存储五位数的五位*/
/*x1,x2,x3,分别表示五位数取余10000,1000,100后的数*/
long a[5],x1,x2,x3;
int i,j,temp=0;
printf("input a number:");
scanf("%ld",&x); //对应起来。
a[0]=x/10000;
x1=x%10000;
a[1]=x1/1000;
x2=x1%1000;
a[2]=x2/100;
x3=x2%100;
a[3]=x3/10;
a[4]=x%10;
for(i=0;i<5-1;i++) //n个数 排n-1趟
for(j=0;j<5-i-1;j++) //这里不是 5-i 若i=0,则j+1 越界了。
{
if(a[j]<a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
printf("\nnew number is:%ld",a[0]*10000+a[1]*1000+a[2]*100+a[3]*10+a[4]);
getch();
}
热心网友 时间:2024-11-05 23:38
for(j=0;j<5-i;j++)
改成 for(j=0;j<5-i-1;j++)
热心网友 时间:2024-11-05 23:39
for(i=0;i<5;i++)
for(j=0;j<5-i;j++)
这里错了.改成
for(i=0;i<5;i++)
for(j=i;j<5;j++)