大家好,今天小编关注到一个比较有意思的话题,就是关于c语言升序排列的问题,于是小编就整理了3个相关介绍c语言升序排列的解答,让我们一起看看吧。
- C语言:任意输入10个数,先将其按由大到小的顺序排列;再输入一个数,要求用折半查找法找出该数是数组?
- C语言将数组a中的10个整数降序排列并输出,如何编程?
- C语言,输入五个国家的名字(英文),按字母顺序(即按ASCII码从小到大的顺序)排列输出?
C语言:任意输入10个数,先将其按由大到小的顺序排列;再输入一个数,要求用折半查找法找出该数是数组?
为了把一个数按大小插入已排好序的数组中,应首先确定排序是从大到小还是从小到大进行的。设排序是从大到小进序的,则可把欲插入的数与数组中各数逐个比较,当找到第一个比插入数小的元素i时,该元素之前即为插入位置。然后从数组最后一个元素开始到该元素为止,逐个后移一个单元。最后把插入数赋予元素i即可。如果***入数比所有的元素值都小则插入最后位置。
main()
{
inti,j,p,q,s,n,a[11]={127,3,6,28,54,68,87,105,162,18};
for(i=0;i<10;i++)
{p=i;q=a[i];
for(j=i+1;j<10;j++)
if(q<a[j]){p=j;q=a[j];}
if(p!=i)
{
C语言将数组a中的10个整数降序排列并输出,如何编程?
对于少数的数字的排列,可以通过简单的if嵌套语句便可将所有情况列举出来;但是一旦要比较的数字较多,这种方法便缺少了可执行性;因此,我们可以***用数组的思想来进行编程;此处以:将10个数按从小到大排列输出 举例:#include"stdio.h"#define N 10int main (){ int a[N]; int i,j,t; printf("Please input %d numbers:\n",N); for(i<0;i<N;i++) { scanf("%d",&a[i]); } for(i=1;i<=N-1;i++) { for(j=0;j<N-i;j++) { if(a[j]>a[j+1]) { t=a[j];a[j]=a[j+1];a[j+1]=t; } } } printf("The resortrd numbers is :\n"); for(i=0;i<N;i++) { printf("%-4d",a[i]); }}附:程序开头***用了定义一个宏常量的方法,可以通过改变该常量来对程序进行整体的改变;增加了程序的灵活性,方便对源程序进行修改;如果要按从大到小的排列方式进行排列,仅仅需要更改程序中的一处,此处便不再详细说明,自己探讨^_^
C语言,输入五个国家的名字(英文),按顺序(即按ASCII码从小到大的顺序)排列输出?
typedef struct{char cou[15];}C;C raw[5];C *p[5];void main(){/*定义结构数组*//*定义指针指向结构体变量*/C* q;int i,j;printf("input countries:\n");/*循环输入国家名并存储在结构数组中*/for(i=0;i<5;i++){scanf("%s",&raw[i].cou);p[i]=&raw[i];/* strupr(p[i].cou);*/}/*冒泡排序将国家名称排序*/for(i=0;i<4;i++)for(j=0;j<4-i;j++){/*strcmp函数比较相邻两个国家名的Ascii码*/if(strcmp(p[j]->cou,p[j+1]->cou)>0){q=p[j];p[j]=p[j+1];p[j+1]=q;}}printf("\n");/*循环输出*/for(i=0;i<5;i++)printf("%s ",p[i].->cou);getch();}想用指针的话利用指针数组排序就行了,另外上面的比较的是p却对q进行了交换字符串拷贝只能用strcpy了
到此,以上就是小编对于c语言升序排列的问题就介绍到这了,希望介绍关于c语言升序排列的3点解答对大家有用。