当前位置:首页 » 编程语言 » c语言中怎么进行降序
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言中怎么进行降序

发布时间: 2022-08-06 01:28:28

Ⅰ 如何用c语言将一组数进行降序排列

假设有n个数。
#include<stdio.h>
void min(int *a,int *b)
{
int data;
if(*a<*b)
{
data=*a;
*a=*b;
*b=data;
}
}
int main()
{
int t[10];//假设n=10,可以设置为其他数
int i,j,n=10;
for(i=0;i<n;i++)
scanf("%d",&t[i]);
for(i=0;i<n-1;i++)
{
for(j=i;j<n-1;j++)
{
min(&t[j],&t[j+1]);
}
}
for(i=0;i<n;i++)
printf("%3d",t[i]);
printf("\n");
return 0;
}

Ⅱ c语言中排序方法

1、冒泡排序(最常用)
冒泡排序是最简单的排序方法:原理是:从左到右,相邻元素进行比较。每次比较一轮,就会找到序列中最大的一个或最小的一个。这个数就会从序列的最右边冒出来。(注意每一轮都是从a[0]开始比较的)

以从小到大排序为例,第一轮比较后,所有数中最大的那个数就会浮到最右边;第二轮比较后,所有数中第二大的那个数就会浮到倒数第二个位置……就这样一轮一轮地比较,最后实现从小到大排序。

2、鸡尾酒排序
鸡尾酒排序又称双向冒泡排序、鸡尾酒搅拌排序、搅拌排序、涟漪排序、来回排序或快乐小时排序, 是冒泡排序的一种变形。该算法与冒泡排序的不同处在于排序时是以双向在序列中进行排序。
原理:数组中的数字本是无规律的排放,先找到最小的数字,把他放到第一位,然后找到最大的数字放到最后一位。然后再找到第二小的数字放到第二位,再找到第二大的数字放到倒数第二位。以此类推,直到完成排序。

3、选择排序
思路是设有10个元素a[1]-a[10],将a[1]与a[2]-a[10]比较,若a[1]比a[2]-a[10]都小,则不进行交换。若a[2]-a[10]中有一个以上比a[1]小,则将其中最大的一个与a[1]交换,此时a[1]就存放了10个数中最小的一个。同理,第二轮拿a[2]与a[3]-a[10]比较,a[2]存放a[2]-a[10]中最小的数,以此类推。

4、插入排序
插入排序是在一个已经有序的小序列的基础上,一次插入一个元素*
一般来说,插入排序都采用in-place在数组上实现。
具体算法描述如下:
⒈ 从第一个元素开始,该元素可以认为已经被排序
⒉ 取出下一个元素,在已经排序的元素序列中从后向前扫描
⒊ 如果该元素(已排序)大于新元素,将该元素移到下一位置
⒋ 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置
⒌ 将新元素插入到下一位置中
⒍ 重复步骤2~5

Ⅲ c语言对从键盘输入的十个整数进行降序排序,排序后输出第二大的数,编写fun函数

排序有挺多方法的,例如:冒泡排序法、选择排序法

以下使用选择排序

#include<stdio.h>

voidfun(inta[],intn)
{
inti,j,k,tmp;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;++j)
if(a[j]>a[k])k=j;
if(k!=i)
{
tmp=a[k];a[k]=a[i];a[i]=tmp;
}
}
}

intmain()
{
inta[10];
inti;
for(i=0;i<10;i++)scanf("%d",&a[i]);
fun(a,10);
for(i=0;i<10;i++)printf("%d ",a[i]);
printf("第二大的数是:%d",a[1]);
return0;
}

Ⅳ 急!!!!!!!!C语言 运用函数进行升序降序排列

在scanf("%c\n",&style);前加 char c; scanf("%c",&c);
原因:前面输入数字时有输入回车 scanf把这个回车赋给了style 所以 要把先那个回车吃了

Ⅳ C语言如何 对10个数进行降序排序。 这边要课程设计了。希望大家帮帮忙

冒泡排序算法实现10个数的降序排列,参考代码如下:

#include"stdio.h"
#defineN10
intmain()
{
inti,j;
intt,a[N];
for(i=0;i<N;++i)
scanf("%d",&a[i]);
for(i=0;i<N-1;++i)
for(j=0;j<N-i-1;++j)
if(a[j]<a[j+1]){
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
for(i=0;i<N;++i)
printf("%d",a[i]);
return0;
}

Ⅵ 用C语言编写,输入10个数按降序排列

源程序代码如下:

#define _CRT_SECURE_NO_WARNINGS//VS环境下需要,VC不需要

#include<stdio.h>//头文件;

int main()

{

int i = 0;

int j = 0;

double temp = 0;

double a[10] = { 0 };//定义三个变量和一个长度为10的数组;

printf("请输入十个数: ");//显示“请输入十个数”

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

{

scanf("%lf", &a[i]);//从键盘上输入十个数送到数组;

}

for (i = 1; i < 10; i++)//for循环,进行9次循环;

{

for (j = i - 1; j >= 0; j--)//for循环,在每次大的循环中,a[i]从a[1]依次与它前面的数比较;

{

if (a[j + 1] > a[j])

{

temp = a[j + 1];

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

a[j] = temp;//如果a[j + 1]>a[j],则把这两个数组元素互换,目的把最大的数放到前边;

}

else

{

break;

}

}

}

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

{

printf("% lf ", a[i]);//输出排好顺序的十个数;

}

return 0;//返回值为0;

}

程序运行结果如下:


(6)c语言中怎么进行降序扩展阅读:

其他实现方法如下:

#include<stdio.h>

int mysort(int *a, int n)

{

int i, j, temp;

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

{

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

{

if (a[j] > a[j + 1])

{

temp = a[j + 1];

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

a[j] = temp;

}

}

}

return 0;

}

int main()

{

int a[10];

int i, j;

printf("input 10 numbers: ");

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

{

printf("the number%d is:", i + 1);

scanf("%d", a + i);

fflush(stdin);

}

mysort(a, 10);

for (i = 9; i >= 0; i--)

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

printf(" ");

return 0;

}

Ⅶ C语言数组七个数升序排列和降序排列怎么编程

1、打开visual C++ 6.0-文件-新建-文件-C++ Source File。

Ⅷ 用c语言对n个整数进行降序排列,并输出排序结果

#include<stdio.h>
voidsort(int*arr,intn);

intmain(intargc,char*argv[])
{
inti;
intarr[8]={12,67,122,0,-12,675,100,11};

sort(arr,8);

for(i=0;i<8;++i)
printf("%d",arr[i]);

return0;
}

//冒泡排序:降序
//arr:待排序的数组
//n:数组的长度
voidsort(int*arr,intn)
{
inti,j,t;
for(i=0;i<n-1;++i)
for(j=0;j<n-1-i;++j)
{
if(arr[j]<arr[j+1])
{
t=arr[j];
arr[j]=arr[j+1];
arr[j+1]=t;

}
}

}

Ⅸ c语言中按单科降序(选择)排序

void Sort_sub(Student *s,int n) //按单科降序(选择)排序
{int i,j;
char t[10];
s=head;
for(i=0;i<n-1;i++)
{
for(j=0;j<n-1-i;j++)
{
if(strcmp(s->num,s->next->num)>0)
{
strcpy(t,s->next->cgrade);
strcpy(s->next->cgrade,s->cgrade);
strcpy(s->cgrade,t);

strcpy(t,s->next->mgrade);
strcpy(s->next->mgrade,s->mgrade);
strcpy(s->mgrade,t);

strcpy(t,s->next->egrade);
strcpy(s->next->egrade,s->egrade);
strcpy(s->egrade,t);

strcpy(t,s->next->name);
strcpy(s->next->name,s->name);
strcpy(s->name,t);
}
s=s->next;
}
s=head;
}
}

Ⅹ 关于C语言进行降序排列

#include<stdio.h>
#include
<math.h>
//从键盘上输入10个整数,要求用插入法实现对它们进行降序排列。
//(主函数完成输入输出功能,排序用函数sort()来实现)。
void
sort(int
a[],int
n)
{
int
i,j,temp;
for(i=0;i<n-1;i++)
{
temp=a[i+1];
j=i;
while(j>-1&&temp<a[j])
{
a[j+1]=a[j];
j--;
}
a[j+1]=temp;
}
}
int
main()
{
int
i,a[10]={0};
printf("请输入10个数据:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
printf("%d\t",a[i]);
sort(a,10);
for(i=0;i<10;i++)
printf("%d\t",a[i]);
return
0;
}