当前位置:首页 » 编程语言 » c语言各列元素和大小排列
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言各列元素和大小排列

发布时间: 2022-06-20 12:13:39

c语言中如何从大到小排列一个数组中的元素

先找不是0的元素个数

然后对前面部分进行排序即可。

函数如下

voidmy_sort(int*a)
{
intn,i,j;
intt;
for(n=0;a[n];n++);
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(a[i]<a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}

自己写主函数 调用my_sort就好了。

㈡ c语言编程: 将一组数按从大到小的顺序排序

#include <stdio.h>

main()

{

int x;

printf("请输入要排序数字个数:");

scanf("%d",&x);

int i,j,k,a,b,num[x];

printf("输入数据:");

for(i=0;i<x;i++)

scanf("%d",&num[i]);

for(j=0;j<x;j++)

{

for(k=j+1;k<x;k++)

if(num[k]>num[j])

{

a=num[j];

num[j]=num[k];

num[k]=a;

}

}

for(b=0;b<x;b++)

printf("%d ",num[b]);

return 0;

}

(2)c语言各列元素和大小排列扩展阅读:

include用法:

#include命令预处理命令的一种,预处理命令可以将别的源代码内容插入到所指定的位置;可以标识出只有在特定条件下才会被编译的某一段程序代码;可以定义类似标识符功能的宏,在编译时,预处理器会用别的文本取代该宏。

插入头文件的内容

#include命令告诉预处理器将指定头文件的内容插入到预处理器命令的相应位置。有两种方式可以指定插入头文件:

1、#include<文件名>

2、#include"文件名"

如果需要包含标准库头文件或者实现版本所提供的头文件,应该使用第一种格式。如下例所示:

#include&lt;math.h&gt;//一些数学函数的原型,以及相关的类型和宏

如果需要包含针对程序所开发的源文件,则应该使用第二种格式。

采用#include命令所插入的文件,通常文件扩展名是.h,文件包括函数原型、宏定义和类型定义。只要使用#include命令,这些定义就可被任何源文件使用。

㈢ C语言如何从大到小排序呢

给你提供几个比较简单的算法思路。

首先纠正一下,你要排序的对象不要存在单个变量里,要存在数组里,这样才能用循环的方式取用。

  1. 插入排序

如果你打过牌,这种排序你就一定能理解。从未排序的部分取出一个元素来,然后插入到已经排好序的部分。就这样一个一个的查入。

2.选择排序

从未排序的部分选出最大(最小)的一个放在已排好序的部分的最后。然后重复此步骤。

3.归并排序

排一个很长的序列可能比较麻烦,我就把他们分成两份,把他们分别排好,然后再把他们接起来,接起来就很简单了。而这两个怎么排呢,我再把他们分别分成两个……这就要用到递归了。


总结一下,前两个时间复杂度是平方,后一个是n*logn 。还有很多其他排序方法,其中冒泡排序比较费时但是很好写,如果你不是想知其所以然,直接网络冒泡套用一下就行。

如果想系统的学习算法,推荐你读算法导论,就是那本很厚的。讲的很好。

㈣ C语言 数组元素大小排序

#include <stdio.h>

# define N 100

void fun(int *a,int n)

{

int i,j,max,min,px,pn,t;

for(i=0;i<n-1;i+=2)

{

max=min=a[i];

px=pn=i;

for(j=i+1;j<n;j++)

{

if(max<a[j])

{max=a[j];px=j;}

if(min>a[j])

{min=a[j];pn=j;}

}

if(px!=i)

{

t=a[i];a[i]=max;a[px]=t;

if(pn==i)pn=px;

}

if(pn!=i+1)

{t=a[i+1];a[i+1]=min;a[pn]=t;}

}

}

int main()

{

int b[N]={1,4,2,3,9,6,5,8,7};

int i,u,k;

u=9;

printf("the original array is: ");

for(k=0;k<u;k++)

printf("%4d",b[k]);

printf(" ");

fun(b,u);

printf(" the result is: ");

for(k=0;k<u;k++)

printf("%4d",b[k]);

return 0;

}

㈤ C语言比较大小排序问题

#define N 10//宏定义,用N代替10
#include "stdio.h"//标准输入输出库,你在控制台输入数据和显示数据用的
main()//主函数
{
int a[N],i,j,temp;//声明需要排序的数组a和排序用的的一些“小工具”,i、j、temp
printf("请输入%d个整数:\n",N);
for(i=0;i<N;i++)//这个循环是和用户交互,手动输入10个数理组成数组
scanf("%d",&a[i]);
for(i=0;i<N-1-i;i++)//i从前往后数
for(j=0;j<N-1-i;j++)//在每一个i(比如0,比如1)下从前往后数j
if(a[j]>a[j+1])//如果j比他后边的大,交换
{temp=a[j];a[j]=a[j+1];a[j+1]=temp;}//两数前后互换
//上边这个循环就是从前往后数a的元素,比如到a[0],那么最大的数移到最后一位;在比如a[1],倒数第二大的数移到倒数第二位(因为最大的在后边,你移步过去了?)
//为什么要走这么多次。每次j的循环都好比一个波浪,一次只能保证一个最大数到了最后一位,其他的可能还是乱序,所以要一浪接一浪。
//这个算法的巧妙之处在于,i只走一半,也就是i从0到4,而j每次也不用到最后一位(j<N-1-i),因为最后那i+1位已经排好了
//比较次数,i=0时9次,i=1时8次,i=2时7次,i=3时6次,i=4时5次,一共35次
printf("排序之后的数据序列:\n");
for(i=0;i<N;i++)//把排序后的数列显示出来,%5d代表每一个数占5位,就是排列的整齐点。
printf("%5d",a[i]);
printf("\n");
}

#include"stdio.h"
#define N 10
main()
{
int a[N],i,j,r,temp;
printf("请输入%d个整数:\n",N);
for(i=0;i<N;i++)
scanf ("%d",&a[i]);
for(i=0;i<N-1;i++)//用i遍历数组a。
{r=i;//局部的r值,i从0到8每次不同,r也不同。
for(j=i+1;j<N;j++)//j是从i当前的值一直到最后(前一种排序时每次j的结尾位置不同,到9,到8.到7。)
if(a[j]<a[r])r=j;//用r标记最小的一个值,
if(r!=i)//如果这个最小的值不是a[i],对换,让i所在值变成最小,意思是a[0]最小,a[1]第二小,以此类推
{temp=a[r];a[r]=a[i];a[i]=temp;}
}
printf("排序之后的数据序列:\n");
for(i=0;i<N;i++)
printf("%5d",a[i]);
printf("\n");

//i=0,j循环9次;i=1,j循环8次。。。。一共45次
}

我把函数改了,这样可以测试,你去跑一下就明白过程了

#include"stdio.h"
#define N 10
main()
{
int count = 0;
int a[N],i,j,r,temp;
printf("请输入%d个整数:\n",N);
for(i=0;i<N;i++)
scanf ("%d",&a[i]);
for(i=0;i<N-1;i++)
{r=i;
for(j=i+1;j<N;j++){
if(a[j]<a[r])r=j;

count++;
printf("i:%d\tj:%d\tcount:%d\n",i,j,count);
}
if(r!=i)
{temp=a[r];a[r]=a[i];a[i]=temp;}
}
printf("排序之后的数据序列:\n");
for(i=0;i<N;i++)
printf("%5d",a[i]);
printf("\n%d\n",count);
}

㈥ C语言编程 数组从大到小排列

我是这样想的啊,仅供参考
定义两个变量 maxNum 和 minNum(类型应该是int吧)
然后把数组的第一个元素赋给这个两个变量
进行FOR循环(从第二个元素开始)
比较当前元素与最大最小元素的大小
大了赋给maxNum
小了赋给minNum
用伪代码表示:
maxNum=a[0]
minNum=a[0]
for(i=1;i<N;i++)
{
if(a[i]<minNum)
minNum=a[i]
if(a[i]>maxNum)
maxNum=a[i]
}
printf(最大值是maxNum,最小值是minNum)

不一定对
个人想法

㈦ C语言将其元素按由大到小排序

#include
#include
typedef
struct
_n{
int
data;
struct
_n*n;}nude;
nude*
c(void){
return
(nude*)malloc(sizeof(nude));}
nude
*h,*b;
void
pai(nude*
h){
nude
*p,*q;
int
temp;
for(p=h;p!=b;p=p->n)
for(q=p->n;q!=b;q=q->n)
if(p->data
data){
temp=q->data;
q->data=p->data;
p->data=temp;}}
int
main(){
int
n,t;
h=c();
b=h;
printf("输入数字(以'-1'结尾)\n");
while(scanf("%d",&t)==1&&t!=-1){
b->data=t;
b->n=c();
b=b->n;}
pai(h);
printf("输出:\n");
while(h!=b){
printf("%d
",h->data);
h=h->n;}
return
0;}

㈧ C语言如何输入十个数,按从大到小顺序排列!

用选择排序法编写c语言,实现从键盘上输入10个数,按从大到小的顺序排序输出。代码如下:

#include<stdio.h>

int main()

{

int i,j,a[10],t;

printf("输入数");

for (i = 0; i < 10; i++)

scanf("%d",&a[i]);

for (i = 0; i < 10; i++)

{

for (j = i + 1; j < 10;j++)

if (a[i] < a[j]){

t = a[i];

a[i] = a[j];

a[j] = t;

}

}

printf("从大到小");

for (i = 0; i < 10; i++)

printf("%2d", a[i]);

return 0;

}

(8)c语言各列元素和大小排列扩展阅读:

代码还可以设计,如下:

#include<stdio.h>

int main()

{

int a[10],i,j,t;//定义数组;

for(i=0;i<10;i++){

scanf("%d",&a[i]);//给数组赋值;

}

for(i=0;i<9;i++)//10个数,进行9轮比较;

for(j=0;j<10-i;j++){//第一个数比较9次,依次递减;

if(a[j]>a[j+1]) {//交换值;

t=a[j];

a[j]=a[j+1];

a[j+1]=t;

}

}

for(i=0;i<10;i++){

printf("%d ",a[i]);//输出数组的值;

}

return 0;

}

}

printf("the sorted numbers: ");

for(i=0;i<10;i++)

printf(" %d",a[i]);

printf(" ");

}

㈨ C语言采用选择法对数组元素按从大到小的顺序排列

#include<stdio.h>
#define SIZE 10
main()
{
int a[SIZE]={3,8,7,6,5,0,
1,2,9,4};
int max,pos;
int i,j;
printf("数组中原存放数据是:\n");
for(i=0;i<SIZE;i++)
printf("%3d",a[i]);
for(i=0;i<SIZE-1;i++)
{
max=a[i];
pos=i;
for(j=i+1;j<SIZE;j++)
if(a[j]>max)
{
max=a[j];
pos=j;
}
a[pos]=a[i];
a[i]=max;
printf("\n经过第%d次排序后,数组变为:\n",i+1);
for(j=0;j<SIZE;j++)
printf("%3d",a[j]);
}
}