
写一个函数,使N个整数按由小到大的顺序排列,要求在主函数中输入10个数,并输出排好序的数
用C语言编写:写一个函数,使N个整数按由小到大的顺序排列,要求在主函数中输入10个数,并输出排好序的数要求用指针来实现...
用C语言编写:写一个函数,使N个整数按由小到大的顺序排列,要求在主函数中输入10个数,并输出排好序的数
要求用指针来实现 展开
要求用指针来实现 展开
3个回答
展开全部
void sort(int *a,int N) //选择排序
{
int i,j,k,t;
for (i = 0; i<N-1; i++) {
k=i;
for (j=i+1; j<N; j++)
if (*(a+k)>*(a+j)) k=j;
if (k!=i) {
t=*(a+k);
*(a+k)=*(a+i);
*(a+i)=t;
}
}
*****************************************
示例程序:
//---------------------------------------------------------------------------
#include <stdio.h>
void sort(int *a,int N)
{
int i,j,k,t;
for (i = 0; i<N-1; i++) {
k=i;
for (j=i+1; j<N; j++)
if (*(a+k)>*(a+j)) k=j;
if (k!=i) {
t=*(a+k);
*(a+k)=*(a+i);
*(a+i)=t;
}
}
}
int main(int argc, char* argv[])
{ int a[10],i;
for (i = 0; i < 10; i++) {//对数组进行填充
a[i]=10-i;
}
for (i = 0; i < 10; i++) {//输出排序之前的情况
printf("%d ",a[i]);
}
putchar('\n');//换行
sort(a,10);//调用sort()函数进行排序
for (i = 0; i < 10; i++) {//输出排序之后的情况
printf("%d ",a[i]);
}
putchar('\n');
return 0;
}
//---------------------------------------------------------------------------
{
int i,j,k,t;
for (i = 0; i<N-1; i++) {
k=i;
for (j=i+1; j<N; j++)
if (*(a+k)>*(a+j)) k=j;
if (k!=i) {
t=*(a+k);
*(a+k)=*(a+i);
*(a+i)=t;
}
}
*****************************************
示例程序:
//---------------------------------------------------------------------------
#include <stdio.h>
void sort(int *a,int N)
{
int i,j,k,t;
for (i = 0; i<N-1; i++) {
k=i;
for (j=i+1; j<N; j++)
if (*(a+k)>*(a+j)) k=j;
if (k!=i) {
t=*(a+k);
*(a+k)=*(a+i);
*(a+i)=t;
}
}
}
int main(int argc, char* argv[])
{ int a[10],i;
for (i = 0; i < 10; i++) {//对数组进行填充
a[i]=10-i;
}
for (i = 0; i < 10; i++) {//输出排序之前的情况
printf("%d ",a[i]);
}
putchar('\n');//换行
sort(a,10);//调用sort()函数进行排序
for (i = 0; i < 10; i++) {//输出排序之后的情况
printf("%d ",a[i]);
}
putchar('\n');
return 0;
}
//---------------------------------------------------------------------------
展开全部
解:源程序如下:
#define n 10
int sort(int a[])
{
int i,j,t;
for (i=0;i<n-1;i++)
for (j=i+1;j<n;j++)
if (a[i]>a[j])
{
t=a[j];
a[j]=a[i];
a[i]=t;
}
}
main()
{
int a[n],i;
for (i=0;i<n;i++)
scanf("%d",&a[i]);
sort(a);
printf("the sort numberes is:\n");
for (i=0;i<n;i++)
printf("%3d",a[i]);
}
#define n 10
int sort(int a[])
{
int i,j,t;
for (i=0;i<n-1;i++)
for (j=i+1;j<n;j++)
if (a[i]>a[j])
{
t=a[j];
a[j]=a[i];
a[i]=t;
}
}
main()
{
int a[n],i;
for (i=0;i<n;i++)
scanf("%d",&a[i]);
sort(a);
printf("the sort numberes is:\n");
for (i=0;i<n;i++)
printf("%3d",a[i]);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
void exchange(int a[])
{
int i,j,temp;
for(j=9;j>=0;j--)
for(i=0;i<j;i++)
if(a[i]>a[i+1])
{
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
}
}
main()
{
int a[10],i;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
exchange(a);
for(i=0;i<10;i++)
printf("%d ",a[i]);
}
void exchange(int a[])
{
int i,j,temp;
for(j=9;j>=0;j--)
for(i=0;i<j;i++)
if(a[i]>a[i+1])
{
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
}
}
main()
{
int a[10],i;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
exchange(a);
for(i=0;i<10;i++)
printf("%d ",a[i]);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询