C语言 关于数组中的数从小到大排序的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言 关于数组中的数从小到大排序的问题相关的知识,希望对你有一定的参考价值。
把数组中的5个数由小到大排列 下面程序错在哪? #include <stdio.h>
main()
int Num1[40];
int i,j,z,q,a;
printf("Enter strings for A \n");
for(i=0;i<5;i++)
scanf("%d",&Num1[i]);
for(z=0;z<5;z++)
for(j=0;j<5;j++) ;
if(Num1[j]>Num1[j+1]) 注:if中每次挑选出两个中一个较大的数 并把它们调换位置
q=Num1[j+1];<br> Num1[j+1]=Num1[j];<br> Num1[j]=q;
for(a=0;a<5;a++)
printf("%d ",Num1[a]);</p><p _extended="true">
;”这个分号是不能有的,有了它循环不执行。2.还是这句,程序执行五次循环,数组第五回比较是Num1(5)和Num1(4)的比较,Num1(5)你是没有定义的,也就是一个不确定的数和确定的数比较,程序多半会出问题的。所以把循环中的5改成4就OK了。 参考技术C 你应该学C没多久吧,出的错挺难找的,而且空间复杂度比较高,这个程序的空间复杂度能减小很多。我就说说你的错误。1.“for(j=0;j<5;j++)
;”这个分号是不能有的,有了它循环不执行。2.还是这句,程序执行五次循环,数组第五回比较是Num1(5)和Num1(4)的比较,Num1(5)你是没有定义的,也就是一个不确定的数和确定的数比较,程序多半会出问题的。所以把循环中的5改成4就OK了。
求问数组从小到大排序最少交换次数的题目怎么做比较好?
具体题目再图片里
参考技术A 数组排序 使得交换次数最少 题目: 给定一个包含1-n的数列,我们通过交换任意两个元素给数列重新排序。 求最少需要多少次交换,能把数组排成按1-n递增的顺序。 参考技术B交换5次:
参考技术C 少需要交换2次就可以复位。如果瓶子更多呢?你可以通过编程来解决。输入格式为两行:第一行:一个正整数N(N<. 数组排序计算最少交换次数以上是关于C语言 关于数组中的数从小到大排序的问题的主要内容,如果未能解决你的问题,请参考以下文章