重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
#includestdio.h
成都创新互联是一家集网站建设,张掖企业网站建设,张掖品牌网站建设,网站定制,张掖网站建设报价,网络营销,网络优化,张掖网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
void Sort(int *a,int n) {
int *p,*q,*v,t;
for(p = a;p a + n - 1;++p) {
v = p;
for(q = p + 1; q a + n; ++q)
if(*v *q) v = q;
if(*p != *v) {
t = *p;
*p = *v;
*v = t;
}
}
}
void Show(int *a,int n) {
int i;
for(i = 0; i n; ++i)
printf("%d ",*(a + i));
printf("\n");
}
int main() {
int a[] = {23,12,54,89,66,59,57,48,91,20,31};
int n = sizeof(a)/sizeof(a[0]);
printf("排序前:\n");
Show(a,n);
printf("排序后:\n");
Sort(a,n);
Show(a,n);
return 0;
}
排序没有问题,但是你在打印的时候出错了
for(i=0;im;i++)
printf("%d",a[i]); #47;#47;这里打印的是数组元素a[i]的地址,应改为printf("%d" , a[i]);
printf("#92;n");
满意请采纳!!!
源程序代码如下:
#define _CRT_SECURE_NO_WARNINGS//VS环境下需要,VC不需要
#includestdio.h//头文件;
int main()
{
int i = 0;
int j = 0;
double temp = 0;
double a[10] = { 0 };//定义三个变量和一个长度为10的数组;
printf("请输入十个数:\n");//显示“请输入十个数”
for (i = 0; i 10; i++)
{
scanf("%lf", a[i]);//从键盘上输入十个数送到数组;
}
for (i = 1; i 10; i++)//for循环,进行9次循环;
{
for (j = i - 1; j = 0; j--)//for循环,在每次大的循环中,a[i]从a[1]依次与它前面的数比较;
{
if (a[j + 1] a[j])
{
temp = a[j + 1];
a[j + 1] = a[j];
a[j] = temp;//如果a[j + 1]a[j],则把这两个数组元素互换,目的把最大的数放到前边;
}
else
{
break;
}
}
}
for (i = 0; i 10; i++)
{
printf("% lf\n", a[i]);//输出排好顺序的十个数;
}
return 0;//返回值为0;
}
程序运行结果如下:
扩展资料:
其他实现方法如下:
#includestdio.h
int mysort(int *a, int n)
{
int i, j, temp;
for (i = 0; i n - 1; i++)
{
for (j = 0; j n - 1 - i; j++)
{
if (a[j] a[j + 1])
{
temp = a[j + 1];
a[j + 1] = a[j];
a[j] = temp;
}
}
}
return 0;
}
int main()
{
int a[10];
int i, j;
printf("input 10 numbers:\n");
for (i = 0; i 10; i++)
{
printf("the number%d is:", i + 1);
scanf("%d", a + i);
fflush(stdin);
}
mysort(a, 10);
for (i = 9; i = 0; i--)
printf("%3d", a[i]);
printf("\n");
return 0;
}