当前位置:首页 » 编程语言 » c语言将n个整数由小到大排列
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言将n个整数由小到大排列

发布时间: 2022-05-30 15:57:06

‘壹’ 数据结构 c语言 给定任意n个整数,求此n个整数的由小到大的排序。1≤n≤100000,各整数范围1-1e18。

#include<stdio.h>
#include<stdlib.h>
intcomp(constvoid*a,constvoid*b)//用来做比较的函数。
{
return*(int*)a-*(int*)b;
}
intmain()
{
inta[100005],i;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
qsort(a,10,sizeof(int),comp);
for(i=0;i<10;i++)
printf("%d",a[i]);
return0;
}

‘贰’ C语言编程题 输入n个整数 按照从小到大的顺序排列

#include<stdio.h>
#include<stdlib.h>
int main()
{
int n,a[100],i=0,j,temp;
printf("请输入数的个数:");
scanf("%d",&n);
printf("\n请输入要排序的数:\n");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n;i++)
for(j=i;j<n;j++)
if(a[j]<a[i])
temp=a[i],a[i]=a[j],a[j]=temp;
printf("排序后:\n");
for(i=0;i<n;i++)
printf("%d ",a[i]);
return 0;
}

‘叁’ c语言如何输入一个正整数N,再输入N个整数,按从小到大的顺序输出

#include<stdio.h>
void main()
{
int n,i,j,t,a[10000];
printf("请输入正整数N:");
scanf("%d",&n);
printf("请依次输入%d个数",n);
for(i=0;i<n;i++)
{
printf("请输入第%d个数",i+1);
scanf("%d",&a[i]);
}
for(j=0;j<n-1;j++)
for(i=0;i<n-1-j;i++)
if(a[i]>a[i+1])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
printf("排序后数组为");
for(i=0;i<n;i++)
printf("%d ",a[i]);

}

‘肆’ c语言给定n个正整数,根据各位数字之和从小到大进行排序.

#include<stdio.h>
intmain()
{
intn,m,k,t,i,j;
inta[1000],b[1000]={0};
while(scanf("%d",&n),n)
{
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
m=a[i];
do
{
b[i]=b[i]+m%10;
m=m/10;
}while(m!=0);
}
for(i=0;i<=n-2;i++)
{
k=i;
for(j=i+1;j<=n-1;j++)
if(b[k]>b[j])
k=j;
if(k!=i)
{t=a[k];a[k]=a[i];a[i]=t;
t=b[k];b[k]=b[i];b[i]=t;}
}
for(i=0;i<n-1;i++)
printf("%d",a[i]);
printf("%d ",a[n-1]);
}
return0;
}

‘伍’ C语言编程——选择排序法,要求:由主函数调用排序子函数,对n个整数进行从小到大的排序,谢了

#include <stdio.h>
#define SIZE_N 20 //SIZE_N is the size of the array

void sortFun(int a[], int n)
{
int temp;
for(int i=0;i<n;i++) //进行n个循环,每次选出剩下的最小的数,如第一次选出n个数中最
for(int j=i+1;j<n;j++)//小的那个,如a[8],放入a[0],而将a[0]原来的值放入a[8].第二次
if(a[j]<a[i]) //就从a[1]到a[n-1]中找出最小的数放入a[1],以此类推。
{
temp=a[j];
a[j]=a[i];
a[i]=temp;
}
}

void main()
{
int a[SIZE_N];
for(int i=0;i<SIZE_N;i++)
{
scanf("%d",&a[i]); //输入数据
}
sortFun(a,SIZE_N); //调用排序函数
for(int j=0;j<SIZE_N;j++)
{
printf("%d\n",a[j]); //输出数据
}
}

以上就是基本的程序,局部可以优化使其更人性化。读入数据和输出数据的方式可以考虑用文件的方式,但排序的函数才是关键。以上程序调试通过,希望可以帮到你。

‘陆’ 用c语言编程:键盘上输入N个整数,使该数组中的数按照从小到大的次序排列(选择法排序)

#include "stdio.h"

#define N 10

int main(int argc,char *argv[]){

int a[N],i,j,k;

printf("Please enter %d integer(s)... ",N);

for(i=0;i<N;scanf("%d",a+i++));//输入

for(i=0;i<N;i++){//选择法排序

for(k=i,j=k+1;j<N;j++)

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

k=j;

if(k!=i)

j=a[k],a[k]=a[i],a[i]=j;

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

}

printf(" ");

return 0;

}

代码图片和运行样例:

‘柒’ c语言:输入一个正整数n,再输入n个整数,将它们排序后由小到大输出

#include"stdafx.h"
#include<stdio.h>
#defineN10//数组长度固定
voidmain()
{
inti,j,num,a[N];//
intchange,t;
printf("EnterNumber:");
scanf("%d",&num);
printf("EnterData: ");
for(i=0;i<num;i++)
scanf("%d",&a[i]);
for(i=num-2,change=1;i>0&&change;i--)//num-1
{
change=0;
for(j=0;j<=i;j++)
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
change=1;
}
}
printf("Sorteddata: ");
for(i=0;i<num;i++)
printf("%d",a[i]);
printf(" ");
}

‘捌’ C语言编程——冒泡排序法。要求:由主函数调用排序子函数,对n个整数进行从小到大的排序,谢了

#include<stdio.h>
void sort(int a[],int n)
{
int i;
int j;
for(i=1;i<n;i++) //n个程序 排n-1次
{
for(j=0;j<n-i;j++)
{
if(a[j]>a[j+1]) //从小到达,前面的比后面的大,则互换。
{
int temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
}
int main()
{
int a[10]={1,3,5,7,9,2,4,6,8,10};
sort(a,10);
int i;
for(i=0;i<10;i++)
{
printf("%d ",a[i]);
}
getchar();
return 0;
}

‘玖’ c语言问题 将输入的n个整数由小到大的顺序输出 n由用户决定

第一种方法:确定输入n的最大值 例如 define N_MAX 100;

int num[N_MAX] ; 来限制用户最多输入 100个数字

第二种方法,使用指针:先得到用户输入数据的个数n 来动态分配内存

例如: n = 100

int *num = (int *) malloc(sizeof(int)*n);

第三种方法:链表,其本质是第二种的扩充。

其余的工作就是排序了,排序的算法很多随意选一个都行

‘拾’ c语言 将输入的n个整数按从小到大排序输出,再求出此n个整数中所有奇数和及所有素数的个数

#include "stdio.h"
#define MAX 100
void main()
{
int n,num[MAX],i,j,k,a = 0,b = 0;

// 输入
printf("输入总数N:");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("输入每个数的值Num%d:",i+1);
scanf("%d",&num[i]);
}

// 排序
for(i=0;i<n-1;i++)
{
for(j=0;j<n-1-i;j++)
{
if(num[j]>num[j+1])
{
k=num[j];
num[j]=num[j+1];
num[j+1]=k;
}
}
}

// 输出
printf("\nResult:\n");
for(i=0;i<n;i++)
{
printf("%d\n",num[i]);
if(num[i] % 2 == 0)
a++;
else
b++;

}
printf("偶数%d, 奇数%d \n",a,b);
printf("\n\n");
}