求大神用C语言帮我做这道程序设计题:用选择法对数组a中的整数由小到大进行排序。
2个回答
展开全部
遍历数组,找一个最小的,放在a[0],继续遍历剩余的数组,找出第二小的,放在a[1]
void selectSort(int a[], int n) {
int i, j, nMinIndex;
for (i = 0; i < n; i++) { //总共找n次
nMinIndex = i; //先把第一个元素设为最小元素
for (j = i + 1; j < n; j++)
if (a[j] < a[nMinIndex])
nMinIndex = j;
Swap(a[i], a[nMinIndex]); //第i次,放到a[i]
}
}
void selectSort(int a[], int n) {
int i, j, nMinIndex;
for (i = 0; i < n; i++) { //总共找n次
nMinIndex = i; //先把第一个元素设为最小元素
for (j = i + 1; j < n; j++)
if (a[j] < a[nMinIndex])
nMinIndex = j;
Swap(a[i], a[nMinIndex]); //第i次,放到a[i]
}
}
追问
C语言啊,main()开头形式的
追答
int main(){
int iarr[] = {9,3,2,4,1,5,};
selectSort(iarr, sizeof(iarr)/sizeof(iarr[0])); //调用完iarr就排序好了
return 0;
}
展开全部
#include "stdio.h"
int main()
{
int t;
int a[10]={0,1,34,23,12,54,64,26,77,111};
for (int i=0;i<10;i++)
for (int j=i+1;j<10;j++)
{
if (a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
for (int i=0;i<10;i++)
{
printf("%d ",a[i]);
}
getchar();
getchar();
return 0;
}
int main()
{
int t;
int a[10]={0,1,34,23,12,54,64,26,77,111};
for (int i=0;i<10;i++)
for (int j=i+1;j<10;j++)
{
if (a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
for (int i=0;i<10;i++)
{
printf("%d ",a[i]);
}
getchar();
getchar();
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询