用c语言 输入一个6个元素的数组,请分别用冒泡法和选择法对数组进行升序排列(从小到大)

用c语言 输入一个6个元素的数组,请分别用冒泡法和选择法对数组进行升序排列(从小到大),第1张

1、新建一个163php。

2、输入php网页的结构(<php>)。

3、声明PHP与浏览器交互的文件类型和编码。

4、使用 array() 函数定义一个$numbers数组

5、使用 sort() 函数对数组 $numbers 中的元素进行排。

6、使用 print_r() 函数,输出排序后的数组。

7、运行网页,在浏览器中输出排序后的数组。

#include <stdioh>
#define o 10
void sort(int p,int n);
void main()
{
int i,date[10];
int p;
p=date;
for(i=0;i<o;i++)
scanf("%d",p+i);
for(i=0;i<o;i++)
printf("%d ",(p+i)); //问题一
sort(p,o);
printf("\n");
for(i=0;i<o;i++)
printf("%d ",(p+i)); //问题二
}

void sort(int p,int n)
{int temp=0,x,y;
for(y=10;y>1;y--)
for(x=0;x<9;x++)
if((p+x)>(p+x+1))
{temp=(p+x);
(p+x)=(p+x+1);
(p+x+1)=temp;}}

表示传入a[3]元素的地址给sort函数
sort函数的输入是一个数组指针,加上一个元素个数n
所以调用sort(&aa[3],5);的作用就是把从a[3]开始的5个元素进行排序
这样写是对的

我介绍两种排序方法吧
1 选择排序
void sort(int a[ ],int length) / 这个数组数据类型你可以自己更改 float 也可以 不过其他的也要相应的改 比如%d改为%f等,length 为数组长度/
{int p,temp,i=0,min;
while(i<length)
{ min=&a[i];

for(p=a+i;p<a+length;p++)
{if(p<min)
{temp=min;
min=p;
p=temp;
}
}
i++;
}
}
选择排序法就是把数组的最小的元素找的然后放到数组的最前面 就是第一小的放到最前面 然后继续从后面找在最小的放到剩下元素的最前面 一直循环直到最后一个
2 冒泡排序
void sort(int a[],int length)
{int p=a,q=a+1,temp;
for(p=a;p<a+length-1;p++)
for(q=p+1;q<a+length;q++)
if(p>q)
{temp=p;
p=q;
q=temp;
}
}
冒泡排序是把上下两个元素比较 然后小的就换到上面去 第一次是最小的 然后是第二小的 依次类推 直到最后
很形象 冒泡 呵呵
这是我写的一个测试程序 你运行一下吧
#include<stdioh>
#include<conioh>
void sort(int a[],int length);
main()
{int a[3]={3,2,1},i;
clrscr();/清屏函数 要打开头文件conioh/
for(i=0;i<3;i++)
printf("%d ",a[i]);
printf("\n");
sort(a,3);
for(i=0;i<3;i++)
printf("%d ",a[i]);
printf("\n");
}
/把sort函数定义写在这/
在上面加一任意一个sort函数 不能加两个啊 c不支持函数重载的


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/10309937.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-07
下一篇 2023-05-07

发表评论

登录后才能评论

评论列表(0条)

保存