帮忙看看这个程序该怎样该(请大侠们多多指教),该如何解决
帮忙看看这个程序该怎样该(请大侠们多多指教)
按位排序问题:从键盘上输入一个五位数,对此整数中的五个数值进行从大到小的排列,形成一个新的五位整数。请大家多多指教,编译不对。
#include "stdio.h "
main()
{long int x;
long int y;
int i;
int a[5];
scanf( "%ld ",&a);
if((x <10000)||(x> 99999))
{printf( "This data is error ");
exit(0);
}
for(i=0;i <5;++i)
{a[i]=x%10;
x=x/10;
}
fun(a);
y=0;
for(i=0;i <5;++i)
y=y*10+a[i];
printf( "%ld ",y);
getch();
}
fun(int a[])
{int i,j,k;
for(i=0;i <5;++i)
for(j=i;j <5;++j)
if(a[j] <k)
{k=a[i];a[i]=a[j];a[j]=k;}
}
------解决方案--------------------
#include <stdio.h>
#include <stdlib.h>
void fun(int a[]);
void main()
{
long int x;
long int y;
int i;
int a[5];
scanf( "%ld ",&x);
if((x <10000)||(x> 99999))
{
printf( "This data is error ");
exit(0);
}
for(i=0;i <5;++i)
{
a[i]=x%10;
x=x/10;
}
fun(a);
y=0;
for(i=0; i <5; ++i)
y = y*10+a[i];
printf( "\n%ld ",y);
getch();
}
void fun(int a[])
{
int i,j,k;
for(i=0; i <4; ++i)
for(j=0; j <4-i; ++j)
if(a[j] < a[j+1])
{
k = a[j]; a[j]=a[j+1]; a[j+1]=k;
}
}
------解决方案--------------------
#include "stdio.h "
#include "conio.h "
main()
{long int x;
long int y=0;
int i;
int a[5];
printf( "please input a number\n ");
scanf( "%ld ",&x);
if((x <10000)||(x> 99999))
{printf( "This data is error ");
exit(0);
}
for(i=0;i <5;++i)
{a[i]=x%10;
x=x/10;
}
fun(a);
printf( "\n ");
printf( "the result number is ");
for(i=0;i <5;++i)
y=y*10+a[i];
printf( "%5ld ",y);
getch();
}
fun(int a[])
{int i,j,k;
for(i=0;i <4;++i)
for(j=i+1;j <5;++j)
if(a[j]> a[i])
{k=a[i];a[i]=a[j];a[j]=k;}
}
按位排序问题:从键盘上输入一个五位数,对此整数中的五个数值进行从大到小的排列,形成一个新的五位整数。请大家多多指教,编译不对。
#include "stdio.h "
main()
{long int x;
long int y;
int i;
int a[5];
scanf( "%ld ",&a);
if((x <10000)||(x> 99999))
{printf( "This data is error ");
exit(0);
}
for(i=0;i <5;++i)
{a[i]=x%10;
x=x/10;
}
fun(a);
y=0;
for(i=0;i <5;++i)
y=y*10+a[i];
printf( "%ld ",y);
getch();
}
fun(int a[])
{int i,j,k;
for(i=0;i <5;++i)
for(j=i;j <5;++j)
if(a[j] <k)
{k=a[i];a[i]=a[j];a[j]=k;}
}
------解决方案--------------------
#include <stdio.h>
#include <stdlib.h>
void fun(int a[]);
void main()
{
long int x;
long int y;
int i;
int a[5];
scanf( "%ld ",&x);
if((x <10000)||(x> 99999))
{
printf( "This data is error ");
exit(0);
}
for(i=0;i <5;++i)
{
a[i]=x%10;
x=x/10;
}
fun(a);
y=0;
for(i=0; i <5; ++i)
y = y*10+a[i];
printf( "\n%ld ",y);
getch();
}
void fun(int a[])
{
int i,j,k;
for(i=0; i <4; ++i)
for(j=0; j <4-i; ++j)
if(a[j] < a[j+1])
{
k = a[j]; a[j]=a[j+1]; a[j+1]=k;
}
}
------解决方案--------------------
#include "stdio.h "
#include "conio.h "
main()
{long int x;
long int y=0;
int i;
int a[5];
printf( "please input a number\n ");
scanf( "%ld ",&x);
if((x <10000)||(x> 99999))
{printf( "This data is error ");
exit(0);
}
for(i=0;i <5;++i)
{a[i]=x%10;
x=x/10;
}
fun(a);
printf( "\n ");
printf( "the result number is ");
for(i=0;i <5;++i)
y=y*10+a[i];
printf( "%5ld ",y);
getch();
}
fun(int a[])
{int i,j,k;
for(i=0;i <4;++i)
for(j=i+1;j <5;++j)
if(a[j]> a[i])
{k=a[i];a[i]=a[j];a[j]=k;}
}