C语言编指针

在主函数中任意输入10个数存入一个数组,然后按照从小到大的顺序输出这10个数,要求数组中元素按照输入时的顺序不能改变位置。那句要求数组中元素按照输入时的顺序不能改变位置。... 在主函数中任意输入10个数存入一个数组,然后按照从小到大的顺序输出这10个数,要求数组中元素按照输入时的顺序不能改变位置。
那句要求数组中元素按照输入时的顺序不能改变位置。这句话是什么意思啊,可以帮我解释一下吗
展开
 我来答
仙戈雅3n
2013-12-23 · TA获得超过5790个赞
知道大有可为答主
回答量:2398
采纳率:75%
帮助的人:907万
展开全部
#include<stdio.h>
#define  MAX 10
void bubble_sort(int a[MAX])
{
int i,j,swaped,temp[MAX]={0};
t=i=j=0;
// 把目标数组拷贝一份给临时变量temp(这也是最安全,最简单的做法)
for(i=0;i<MAX;i++) temp[i]=a[i];

do 
{
swaped=0;
for(i=1;i<MAX;i++)
{
if(temp[i]<temp[i-1])
{
j=temp[i-1];
temp[i-1]=temp[i];
temp[i]=j;
swaped=1;
}
}
} while (swaped);

// printf the result.
printf("排序之后:");
for (i=0;i<MAX;i++) printf("%d ",temp[i]);
printf("\n");
}
int main()
{
    int test[MAX]={34,2,45,23,78,102,200,56,79,1};
bubble_sort(test);
  
printf("排序之前:");
for (int i=0;i<MAX;i++) printf("%d ",test[i]);
    printf("\n");

return 0;
}
百度网友71c2fbfb4
2013-12-22 · 超过10用户采纳过TA的回答
知道答主
回答量:18
采纳率:0%
帮助的人:23万
展开全部
#include "stdio.h"
void main()
{
char a[10],b[10],temp;
int i,j;
for(i=0;i<10;i++)
scanf("%c",&a[i]);
for(i=0;i<10;i++)
b[i]=a[i];
for(i=0;i<10-1;i++)
for(j=0;j<10-1-i;j++)
{
if(b[j+1]<b[j])
{ temp=b[j];b[j]=b[j+1];b[j+1]=temp;}
}
for(i=0;i<10;i++)
printf("%c\n",b[i]);
}
暂时想到的就是另建一个数组
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
果断的雨滴
2013-12-22
知道答主
回答量:12
采纳率:0%
帮助的人:7.6万
展开全部
就是不能改变位置啦。如a[0]=20,a[1]=10,a[2]=30;
你不可以改变其位置,如你不可以改成a[0]=10,a[1]=20;a[2]=30;
追问
可以给我代码吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
勤奋的old毛
2013-12-22
知道答主
回答量:9
采纳率:0%
帮助的人:5.8万
展开全部
就是说你在对数组A排序的时候不能把A的顺序打乱了,比较naive的方法是你可以另建一个数组把排好序的填进去
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式