當前位置:首頁 » 編程語言 » 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");
}