程序运行结果:
程序是用来给数字排序,您想输入几个整数?
4
您想正序排列还是倒序排列:(升序输入0,降序输入1
)7
错误的排序方式!
linux@ubuntu:~/hqyj/base_c/day10$ ./a.out
程序是用来给数字排序,您想输入几个整数?
5
您想正序排列还是倒序排列:(升序输入0,降序输入1
)0
请输入5个数字
5
1
9
3
8
排序前=5 1 9 3 8
你已经调用函数!
排序后=1 3 5 8 9
代码:
#include<stdio.h>
#if 1
int px(int x,int y,int *p){//x传数组中有几个有效元素,y决定升序降序
int a = 0;//*p传递数组的地址
int b = 0;
int c = 0;
printf("你已经调用函数!\n");
if(y== 0){
for(;c<x-1;c++){
for(a=0;a<x-1-c;a++){
if(*(p+a)>*(p+a+1)) {
b = *(p+a);
*(p+a) = *(p+a+1);
*(p+a+1) = b;
}
}
}
}else {
for(;c<x-1;c++){
for(a=0;a<x-1-c;a++){
if(*(p+a)<*(p+a+1)) {
b = *(p+a);
*(p+a) = *(p+a+1);
*(p+a+1) = b;
}
}
}
}
}
#endif
void main(int argc, const char *argv[])
{
int s[10]={0};
int a = 0;
int flag = 0;
printf("程序是用来给数字排序,您想输入几个整数?\n");
scanf("%d",&a);
if(a>=10){
printf("整数太多了,最大为10.\n");
return ;
}
printf("您想正序排列还是倒序排列:(升序输入0,降序输入1\n)");
scanf("%d",&flag);
if(flag!=0 && flag!= 1){
printf("错误的排序方式!\n");
return ;
}
printf("请输入%d个数字\n",a);
int i = 0;
for(;i<a;i++){
scanf("%d",&s[i]);
}
printf("排序前=");
i = 0;
for(;i<a;i++){
printf("%d ",s[i]);
}
printf("\n");
px(a,flag,s);
printf("排序后=");
i = 0;
for(;i<a;i++){
printf("%d ",s[i]);
}
printf("\n");
return ;
}