用选择法对数组中的N个元素按从小到大的顺序排列 用 C语言编写 谢谢啦
3个回答
展开全部
我今天又学习到了选择算法,呵呵,我一开始猜想是冒泡排序呢,刚学习的
#include<stdio.h>
#define N 10
void main()
{
int Data[N];
int i,j,temp;
for(i=0;i<N;i++)
{
printf("请输入第%d个数:",i+1);
scanf("%d",&Data[i]);
}
//开始选择排序
for(i=0;i<N-1;i++)
{
for(j=i+1;j<N;j++)
{
if(Data[i]>Data[j])
{
temp=Data[i];
Data[i]=Data[j];
Data[j]=temp;
}
}
}
//选择排序结束
for(i=0;i<N;i++)
{
printf("排序后第%d个数为:%d\n",i+1,Data[i]);
}
}
希望对你有帮助。
展开全部
#include<stdio.h>
#include<stdlib.h>
void Sort(int *a, int n);
int main()
{
int i, n;
printf("请输入你要输入多少个数据:");
scanf("%d", &n);
int *a = (int *)malloc(sizeof(int) * n); //动态分配数组空间 因为你开始无法确定数组元素个数。
printf("请输入这些数据:\n");
for(i=0; i<n; i++)
{
scanf("%d", &a[i]);
}
Sort(a, n);
printf("排序后为:\n");
for(i=0; i<n; i++)
{
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
void Sort(int *a, int n)
{
int i, j, temp;
for(i=0; i<n; i++)
{
for(j=i; j<n; j++)
{
if(a[i] > a[j])
{
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
}
经过测试没有问题的
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
#define N 4
main()
{
int a[N];
int i,j,t;
printf("输入%d个数:",N);
for(i=0;i<N;i++)
scanf("%d",&a[i]);
for(i=0;i<N;i++)
for(j=i+1;j<N;j++)
if(a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
for(i=0;i<N;i++)
printf("%d\n",a[i]);
}
改变N的值就可以实现了。答题不易,满意请采纳,其他问题请采纳后追问。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询