c语言 使用冒泡排序将一维数组A中的N个元素升序排列

 我来答
59分粑粑分享生活
高粉答主

2020-04-29 · 专注生活好物分享,解答日常方方面面的问题
59分粑粑分享生活
采纳数:326 获赞数:119811

向TA提问 私信TA
展开全部

方法和详细的操作步骤如下:

1、第一步,打开C文件,定义一组序列和要排序的各种变量,然后处理排序逻辑,具体的代码见下图,转到下面的步骤。

2、第二步,完成上述步骤后,冒泡排序的逻辑是一组数字从第一个值开始,如果两个相邻数字的顺序与期望的顺序不同,则会交换两个数字的位置。 重复此过程,直到最后一个数字。如果需要交换,则排序完成,实现的代码见下图,转到下面的步骤。

3、第三步,完成上述步骤后,编译并运行程序,就获得了想要的结果了,见下图。这样,就解决了这个问题了。

2013努力实现
推荐于2017-12-15 · 超过24用户采纳过TA的回答
知道答主
回答量:62
采纳率:0%
帮助的人:44.1万
展开全部
#include <stdio.h>
#include <malloc.h>
int main()
{
int *p=NULL,n=0;
int i,j,temp;
printf("请输入数组大小!\n");
scanf("%d",&n);
p=(int *)malloc(sizeof(int)*n);
if(p==NULL)
{
printf("内存不足分配失败!\n");
return 0;
}
printf("请为%d个元素赋值如 1 2 3\n",n);
for(i=0;i<n;++i)
scanf("%d",p+i);
for(i=1;i<n;++i)
{
for(j=0;j<n-i;++j)
if(p[j]>p[j+1])
{
temp=p[j];
p[j]=p[j+1];
p[j+1]=temp;
}

}
printf("排序结果!\n");
for(i=0;i<n;++i)
printf("%5d",p[i]);
printf("\n");
return 0;
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
飨宴_
2013-06-20 · TA获得超过131个赞
知道小有建树答主
回答量:136
采纳率:0%
帮助的人:98.4万
展开全部
#include <stdio.h> 
int main()
{
int t,i,j,a[100],n;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);

for(i=1;i<n;i++) //冒泡排序过程 
for(j=1;j<=n-i;j++)
{
if(a[j]<a[j-1])
{
t=a[j];
a[j]=a[j-1];
a[j-1]=t;
}
}

for(i=0;i<n;i++)
printf("%d ",a[i]);
return 0;
}

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友6fe74e2
2013-06-20 · TA获得超过6592个赞
知道大有可为答主
回答量:1973
采纳率:100%
帮助的人:243万
展开全部
#include "stdio.h"
int main()
{
   int a[100],n,i,j,tmp;
   scanf("%d",&n);
   for(i=0;i<n;i++)
      scanf("%d",&a[i]);
   for(i=0;i<n-1;i++)
     for(j=0;j<n-1-i;j++)
       if(a[j]>a[j+1])
       {
          tmp=a[j];
          a[j]=a[j+1];
          a[j+1]=tmp;
        }
   for(i=0;i<n;i++)
      printf("%d ",a[i]);
   printf("\n");
}

结果:

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
离歌亮仔仔
2013-07-22
知道答主
回答量:4
采纳率:0%
帮助的人:2.9万
展开全部
我这给出一个不用指针,不用手动分配内存空间的
相对 精简易懂 的方法

#include <stdio.h>
int main()
{
int N,A[N];
int i,j,temp;
printf("请输入数组大小!\n");
scanf("%d",&N);
printf("请为%d个元素赋值\n",N);
for(i=0;i<N;i++)
scanf("%d",&A[i]);
for(i=0;i<N;i++)
for(j=0;j<N-i;j++)
if(A[j]>A[j+1])
{
temp=A[j];
A[j]=A[j+1];
A[j+1]=temp;
}

}
printf("排序结果:\n");
for(i=0;i<N;++i)
printf("%d ",A[i]);
printf("\n");
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式