用指针实现:由键盘输入10个整数,将他们按由小到大的顺序排列。

输入: 键盘输入的10个整数。
输出: 按由小到大的顺序排列。
输入样例: 1 5 4 3 2 9 23 11 5 7
输出样例: 1 2 3 4 5 5 7 9 11 23

#include<stdio.h>

void sort(int*s,int n);//定义排序函数

int main()

{

int a[10],*p;

printf("Please enter 10 nunmbers:");//输入10个整数

for(p=a;p<a+10;scanf("%d",p++));

printf("Original number:");

for(p=a;p<a+10;printf("%d",*p++));//输出原来输入的10个整数

printf("\n");

sort(a,10);//调用排序函数

printf("New number:");

for(p=a;p<a+10;printf("%d",*p++));//输出排序后的10个整数

printf("\n");

return 0;

}

void sort(int*s,int n)

{

int*i,*j,t;

for(i=s;i<s+n;i++)

for(j=i+1;j<s+n;*i<*j?t=*i,*i=*j,*j=t,j++:j++);

}

扩展资料:

return是C++预定义的语句,它提供了终止函数执行的一种方式。当return语句提供了一个值时,这个值就成为函数的返回值

return 0代表程序正常退出。return是C++预定义的语句,它提供了终止函数执行的一种方式。当return语句提供了一个值时,这个值就成为函数的返回值。

return语句用来结束循环,或返回一个函数的值。

1、return 0,说明程序正常退出,返回到主程序继续往下执行。

2、return 1,说明程序异常退出,返回主调函数来处理,继续往下执行。return 0或return 1对程序执行的顺序没有影响,只是大家习惯于使用return(0)退出子程序而已。

参考资料:

百度百科——return

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-04-06
#include<stdio.h> /* 用指针实现:由键盘输入10个整数,将他们按由小到大的顺序排列 */

void main() /*主函数*/
{
int i, m, a[10], *p=a, k, j, t; /*定义变量*/

printf( "输入10 个数:"); /*输入数字,例如:2然后按回车,3然后按回车,直到结束*/
for( i = 0 ; i <= 9 ; i++ )
scanf( "%d" , p + i );

for( i = 0 ; i < 9 ; i++ ) /*对输入的十个数进行排序*/
{
k = i;
for( j = i+1 ; j <= 9 ; j++ )
if(*( p+k ) < *( p+j ))
k = j;
{ t = *(p+k); *(p+k) = *(p+i); *(p+i) = t; }
}

for( i = 0 ; i <= 9 ; i++ ) /*排序后输出结果*/
printf( "%d" , *(p+i) );
} /*The End*/本回答被提问者和网友采纳
第2个回答  2011-04-08
/* 用指针实现:由键盘输入10个整数,将他们按由小到大的顺序排列 */
#include "stdio.h"

/* 简单选择排序 */
void SelectSort(int *arr, int len)
{
int i, j, k;
int temp;

for(i=0; i<len-1; i++)
{
k = i;
for(j=i+1; j<len; j++)
{
if(*(arr+j) < *(arr+k))
k = j;
}
if(k != i)
{
temp = *(arr+k);
*(arr+k) = *(arr+i);
*(arr+i) = temp;
}
}
}

void main()
{
int arr[10];
int i;

printf("input 10 number : \n");
for(i=0; i<10; i++)
scanf("%d", &arr[i]);

SelectSort(arr, 10);

printf("softed : \n");
for(i=0; i<10; i++)
printf("%4d", arr[i]);
}
第3个回答  2011-04-08
#include<stdio.h>
void main()
{
int order(int *p1,int *p2,int *p3,int *p4,int *p5,int *p6,int *p7,int *p8,int *p9,int *p10);
int num1,num2,num3,num4,num5,num6,num7,num8,num9,num10;
printf("enter the 10 numbers\n");
scanf("%d,%d,%d,%d,%d,%d,%d,%d,%d,%d",&num1,&num2,&num3,&num4,&num5,&num6,&num7,&num8,&num9,&num10);
order(&num1,&num2,&num3,&num4,&num5,&num6,&num7,&num8,&num9,&num10);
printf("order is%d,%d,%d,%d,%d,%d,%d,%d,%d,%d\n",num1,num2,num3,num4,num5,num6,num7,num8,num9,num10);
getchar();
getchar();
}
int order(int *p1,int *p2,int *p3,int *p4,int *p5,int *p6,int *p7,int *p8,int *p9,int *p10)
{
int i=1;
int ord(int *pa,int *pb);
do
{
ord(p1,p2);
ord(p2,p3);
ord(p3,p4);
ord(p4,p5);
ord(p5,p6);
ord(p6,p7);
ord(p7,p8);
ord(p8,p9);
ord(p9,p10);
++i;
}while(i<10);
return(*p1,*p2,*p3,*p4,*p5,*p6,*p7,*p8,*p9,*p10);
}
int ord(int *pa,int *pb)
{
int a;
if(*pa>*pb)
{
a=*pa;
*pa=*pb;
*pb=a;
}
return(*pa,*pb);
}
第4个回答  2011-04-09
#include"stdio.h"
int main()
{
int a[10],*p,i;
p=a;
printf("enter ten number :\n");
for(i=0;i<10;i++)
scanf("%d",p+i);
void sort(int *p);
sort(p);
for(i=0;i<10;i++)
printf("%d\t",*(p+i));
}
void sort(int *p)
{
int i,j,k;
for(i=0;i<9;i++)
for(j=0;j<9-i;j++)
if(*(p+j)>*(p+j+1))
{
k=*(p+j);
*(p+j)=*(p+j+1);
*(p+j+1)=k;
}
}
相似回答