编写一个排序函数,用选择法对一批保留整数的函数按从大到小的次序进行排序。在主函数内输入数据,调用排序函数对数据

C++上机作业答案_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
C++上机作业答案
上传于||暂无简介
阅读已结束,如果下载本文需要使用2下载券
想免费下载本文?
下载文档到电脑,查找使用更方便
还剩34页未读,继续阅读
你可能喜欢C语言问题:编写一个函数,使10个整数按由大到小顺序排序_百度知道
C语言问题:编写一个函数,使10个整数按由大到小顺序排序
t=x[i]:&quot!=i)
t=x[i],*p; for(i=0;;
for(j=i+1; } printf(&i++) {
for(j=i+1,p++),t;
} }}运行结果没问题,j,这样怎能按由大到小的顺序排列呢;
x[j]=x[k],int n),10);i&lt,a[10]; p=a;int main(){ void sort (int x[];%d&
for(j=i+1;j&lt,j;);; for(p=a; int i.h&i++) {
printf(&i&x[k])
x[k]=t,t书上的例子;j++)
if(x[j]&gt,i=0;i++) {
if(k,而当i=1时;stdio,是把最小的一个数调到数组的最后一个元素?当i=0时;i&10,*p);),但它不是明显有问题吗;
x[i]=x[k],int n){ int i,k,int n){
for(i=0;n-1,k;&#92:void sort (int x[],j; sort(p,int n){ int i:void sort (int x[]; return 0;
x[i]=x[k];n&i&j++)
if(x[j]&n-1;10;i& for(i=0,可是第一个元素不一定是最大的,第一个元素已不再做比较;%d &j& printf(&quot:#include &j&}void sort (int x[];
} }}我脑子都快爆开了,t;n-1?我把它改成,k;
x[k]=t; for(i=0;x[k])
} }}问题;n;j++)
if(x[j]&i++) {
k=i;n;please enter 10 integer numbers
提问者采纳
意循环体;x[k]) k=j;这语句去掉;意思是将数组中最大数的下标赋值给k,然后再执行第一个for循环找这些数中第二大数放到第二位置,因此第二个for 循环结束退出后x[k]就是这些数中的最大数,如此进行下去就ok了,然后执行下面的语句,把最大数放到这些数的最前面位置。这是种选择法排序。 你改的是种冒泡排序,但要把k=i,第二个for循环的循环体是if(x[j]&gt
x[i]=x[k];
}不是又把X[k]变小了吗
刚开始执行时i=0,k=0,经过for(j=i+1;j&n;j++)
if(x[j]&x[k])
k=j;选择出了这所有数中的最大数假设是x[4],即此时j=4,k=4,再经过if(k!=i){
x[i]=x[k];
x[k]=t;}使x[0]的值和x[4]的值互换,最大数就放到了最前面位置,再返回到第一重循环,i=1,k=1,再执行下面的语句,如此下去...
提问者评价
Oh!我弄了那么久,现在才知道原来是看漏眼了,这回答让我茅塞顿开了,谢谢
其他类似问题
为您推荐:
其他4条回答
j;如果坐标有变则将大的数放在最前面的位置
} }}所以该例子是把大的数放到第一个这个是用的冒泡法来排序的;n-1,k;//
x[i]=x[k];
for(j=i+1,t;j&j++)
if(x[j]&n;/i&lt!=i)/ for(i=0,void sort (int x[];x[k])
x[k]=t;将大的那个坐标记下
if(k;i++) {
k=i,int n){ int i
x[i]=x[k];
}不是又把X[k]变小了吗,也就是x[i]&x[k],第二次比较的时候就x[k]与第三个元素比较,这样令最大值排第一位呢
if(x[j]&x[k])
k=j;这个是关键,比较值的大小不是把最小的数放到最后,而是把最大的值放到第一个。
该法为选择法排序,当i=0时,把x[0]与x[1],x[2]........x[9]比较。如果这个数比x[0]大,就把这个数与x[0]交换。然后再看下面的数,比交换后的x[0]大的话还交换。直到x[0]与后面的9个数比完为止。x[0]中放的就是10个数中最大的。然后把x[1]与后面的8个数相比。以此循环下去,就成了按大小排序的10个数。
建议直接调用库函数排序,qsort或者sort
c语言的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁> 字符串排序问题-求帮助在主函数中输入10个等长的字符串。用另一函数对它们排序。然后在主函数输出这1
字符串排序问题-求帮助在主函数中输入10个等长的字符串。用另一函数对它们排序。然后在主函数输出这1
waze123 & &
发布时间: & &
浏览:19 & &
回复:2 & &
悬赏:0.0希赛币
字符串排序问题-求帮助在主函数中输入10个等长的字符串。用另一函数对它们排序。然后在主函数输出这10个已排好序的字符串。下面是用选择法排序,搞了半天一直找不出哪里出了问题 ,求高手帮忙看看。#include &stdio.h&void main(){ &
void sort(char a[][10],int ); & char str[10][6]; for(i=0;i&5;i++)
scanf(&%s&,&str[i]);&
sort(str,5); for(i=0;i&5;i++)
printf(&%s\n&,str[i]);}void sort(char a[][10],int n){ &
int k,i, char t[10]; // &
for(k=0;k&n-2;k++){
for(i=k+1;i&n-1;i++)
if(strcmp(a[index],a[i])&0){
strcpy(t,a[index]);
strcpy(a[index],a[k]);
strcpy(a[k],t);
scanf(&%s&,&str[i]); 应改为rewind(stdin);scanf(&%5s&,str[i]); printf里面的%和变量的一一对应关系scanf里面的%和变量以及变量前加不加&的一一对应关系是C代码中非常容易出错的地方,而且通常编译还不出错。所以在编译源代码之前值得专门仔细检查一遍甚至多遍。
wazfyyy & &
& & (0)(0)探讨char str[20][10];for(i=0;i&5;i++)fgets(str[i],10,stdin);if ('\n'==str[i][strlen(str[i])-1]) str[i][strlen(str[i])-1]=0;wazk1977 & &
& & (0)(0)
本问题标题:
本问题地址:
温馨提示:本问题已经关闭,不能解答。
暂无合适的专家
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&编写一函数,用选择法对n个数按从大到小的顺序排序,在主函数调用该函数并输出排序后的数._百度知道
编写一函数,用选择法对n个数按从大到小的顺序排序,在主函数调用该函数并输出排序后的数.
神们 。明天C语言考试
{ int&(j&=&{
a[i]&a[j])&nbsp.i,&&=&&nbsp,&;i)&nbsp.min&temp&j&a[i];j; for(i&/zhidao/wh%3D450%2C600/sign=fd8065413cdbb6fd250eed223c14872e/b58f8c5494eef01ffe://e.com/zhidao/pic/item/b58f8c5494eef01ffe;0;{
min&1;选择排序后的数组为&1;&{
} } printf(&=&(i&a[min];=&&&
a[min]&0;&+&i++)&+&%&nbsp.jpg" target="_blank" title="点击查看大图" class="ikqb_img_alink"><img class="ikqb_img" src="&nbsp!=&&quot.5://e;&lt.h&(i&&}<a href="5;4;i++)& } for&); }}void&=&&/zhidao/wh%3D600%2C800/sign=7e41ea7e1ed5ad6eaaac6cecb1fb15e3/b58f8c5494eef01ffe;j;a[i]);(a[min]&nbsp.i&i&rand()&=&
if&100&&&%d\t&&nbsp.jpg" esrc="0;void&&{
int&=&5;i.baidu:&nbsp.=&;&=&&{
int&nbsp://e;j++)&&i&i&=&i++){
printf(&main(){ dis(),&(min&dis()&;a[5]#include&lt
来自团队:
其他类似问题
为您推荐:
主函数的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁编写一个排序函数,用选择法对一批整数按从大到小的次序进行排序。在主函数内输入数据,调用排序函数对数据_百度知道
编写一个排序函数,用选择法对一批整数按从大到小的次序进行排序。在主函数内输入数据,调用排序函数对数据
我有更好的答案
for(i=0,5; SelectSort(a;i++)
cout&t&#39;n;
} } for(i=0;j++)
if(a[j]&lt,86,55};&i&lt,int n){ }void main(){ int a[10]={20,16;void SelectSort(int a[];a[k]) k=j;iostream,38;a[k]=a[i],a[i]&j&lt,152;n.h&&i++) {
k=i;n-1,61,75;&#92;
for(j=i+1;,45,j!=i)
temp=a[k];&#39;a[i]=
if(k#include&lt,k;i&lt,10)
其他类似问题
为您推荐:
主函数的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁}

我要回帖

更多关于 保留整数的函数 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信