當前位置:首頁 » 編程語言 » c語言把一組數從小到大
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言把一組數從小到大

發布時間: 2022-02-05 12:10:35

1. c語言將數組從小到大排序

#include<stdio.h>
intmain()
{
inta[20];
inti,j,temp;
int*p=&a[0];
int*d;
intn;
printf("請輸入數組長度");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("請輸入這個數組 ");
scanf("%d",p++);//<=================

}
for(p=a;p<a+n;p++)//<=================
{
for(d=p+1;d<a+n;d++)//<=================
{
if(*p>*d)
{
temp=*p;
*p=*d;
*d=temp;
}
}
}
p=a;
for(p;p<a+n;p++)
{
printf("%d ",*p);

}
return0;
}

2. 用c語言編寫一個程序把一列隨機輸入的數字從小到大排列

//起泡排序,小->大,,隨機產生k個數
#include"stdio.h"
#include"time.h"
#include"stdlib.h"
void main()
{int str[200],str2;
int i,j,k;
srand(time(NULL));
k=rand()%100+10;
printf("input three numbers:\n");
for(i=0;i<k;i++)
str[i]=rand()%100;

for(j=0;j<k;j++)//比較5趟
for(i=0;i<k-j;i++)//第j趟就比較5-j次,共比較4+3+2+1=10次
if(str[i]>str[i+1])
{str2=str[i];str[i]=str[i+1];str[i+1]=str2;}
//輸出
for(i=1;i<k;i++)
printf("%3d ",str[i]);
printf("\n");
}

3. 求C語言將數組元素大小排序!!

C語言將數組元素大小排序方法:

以下使用的是冒泡排序法實線數組從小到大排序。

思想:每次相鄰兩個數比較,若升序,則將大的數放到後面,一次循環過後,就會將最大的數放在最後。

10、2、3、4、5、6、9、8、7、1是輸入的待排序的數列,經過第一次排序,將最大的,10放在最後,第二次排序,將剩下的2、3、4、5、6、9、8、7、1進行冒泡,將當前最大的9放在倒數第二的位置,以此類推。

以下是具體代碼:

#include <stdio.h>

int main(){

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

int i, j, temp, isSorted;

//優化演算法:最多進行 n-1 輪比較

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

isSorted = 1; //假設剩下的元素已經排序好了

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

if(nums[j] > nums[j+1]){

temp = nums[j];

nums[j] = nums[j+1];

nums[j+1] = temp;

isSorted = 0; //一旦需要交換數組元素,就說明剩下的元素沒有排序好

}

}

if(isSorted) break; //如果沒有發生交換,說明剩下的元素已經排序好了

}

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

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

}

printf(" ");

return 0;

}

(3)c語言把一組數從小到大擴展閱讀:

其他將數組從小到大排序的演算法

以下使用的是選擇排序法實現數組從小到大排序。

思想:從第一個數開始,每次和後面剩餘的數進行比較,若升序,則如果後邊的數比當前數字小,進行交換,和後面的所有的數比較、交換後,就會將當前的最小值放在當前的位置

輸入的序列為10、2、3、4、5、6、9、8、7、1進行一次排序後將最小的數放在了第一位(a[0]與它後面的所有數進行比較,若a[0]比後面的數大,進行交換),以此類推。

以下是具體代碼:

#include <stdio.h>

int main(void){

int a[1001];

int n,i,j,t;

scanf("%d",&n);//n為要排序的數的個數

//輸入需要排序的數

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

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

//接下來進行排序

for(i=0;i<n-1;++i)//因為每次需要和a[i]後面的數進行比較,所以到a[n-2](倒數第2個元素)就行

{

for(j=i+1;j<n;++j)//j從i後一個開始,a[i]與a[j]進行比較

{

if(a[i]>a[j])//a[i]為當前值,若是比後面的a[j]大,進行交換

{

t=a[i];

a[i]=a[j];

a[j]=t;

}

}//每排序一次,就會將a[i](包括a[i])之後的最小值放在a[i]的位置

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

printf("%-5d",a[j]);

printf(" ");

}

return 0;

}

4. 編寫C語言程序,把一個數組按從小到大的次序排列起來

源程序以及演算法注釋如下:

#define _CRT_SECURE_NO_WARNINGS//VS編譯環境需要進行宏定義,VC6.0可忽略

#include<stdio.h>//輸入輸出頭文件

int main()

{

int number[10], New_number[10];//定義數組的數據類型為整型

int i, j, m, n, k;//定義變數的數據類型為整型

printf("input 10 <int> number:");//文字提示

for (i = 0; i <= 9; i++)//用循環輸入數值給數組number並賦給數組New_number

{

scanf("%d", &number[i]);//輸入10個整形數字到數組中

New_number[i] = number[i];//數組number元素賦給數組New_number

}

for (n = 0; n <= 8; n++)//要進行(10-1)組比較

for (j = 0; j <= 8 - n; j++)//每組進行(10減第幾組)次比較

{

if (number[j] > number[j + 1])//比較大小並將小的賦給前面的數組

{

k = number[j];//將相對較大的元素賦值給中間元素

number[j] = number[j + 1];//將相對較小的元素送達前面一個位置

number[j + 1] = k;//將中間變數元素送給後面一個位置

}

if (New_number[j] < New_number[j + 1])//比較大小並將大的賦給前面的數組

{

k = New_number[j + 1];//將相對較小的元素賦值給中間元素

New_number[j + 1] = New_number[j];//將相對較大的元素送達前面一個位置

New_number[j] = k;//將中間變數元素送給後面一個位置

}

}

printf("min-->max: ");//文字提示

for (m = 0; m <= 9; m++)//依次從小到大輸出

printf("%d ", number[m]);//輸出元素

printf(" ");

printf("max-->min: ");//文字提示

for (m = 0; m <= 9; m++)//依次從大到小輸出

printf("%d ", New_number[m]);//輸出元素

printf(" ");

return 0;

}

程序運行結果如下:



(4)c語言把一組數從小到大擴展閱讀:

其他簡單實現程序:

#include<stdio.h>

int main()

{

int a[10]={0};

int i,j,temp;

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

{

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

}

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

{

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

{

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

{

temp = a[j];

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

a[j+1] = temp;

}

}

}

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

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

return 0;

}

5. c語言如何把幾組數按從小到大的順序輸出 知乎

#include<stdio.h>
#include<string.h>

/*最多幾個數字排序*/
#defineMAX6

intmain(intargc,char*argv[])
{
inti=0;
intj=0;
inttmp;//冒泡排序演算法的臨時變數
intaaa[MAX];

/*變數初始化*/
memset(&aaa,0,sizeof(aaa));

/*監聽輸入*/
for(i=0;i<MAX;i++)
{
printf("[%d]inputnumber: ",i);
scanf("%d",&aaa[i]);
}

/*冒泡排序*/
for(i=0;i<MAX;i++)
{
for(j=i+1;j<MAX;j++)
{
if(aaa[i]>aaa[j])
{
tmp=aaa[j];
aaa[j]=aaa[i];
aaa[i]=tmp;
}
}
}

/*列印所有輸入數*/
printf(" total%dnumberssortfromsmalltolarge ",i);
for(i=0;i<MAX;i++)
{
printf("%d",aaa[i]);
}
printf(" ");

return0;
}

6. 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;

}

(6)c語言把一組數從小到大擴展閱讀:

include用法:

#include命令預處理命令的一種,預處理命令可以將別的源代碼內容插入到所指定的位置;可以標識出只有在特定條件下才會被編譯的某一段程序代碼;可以定義類似標識符功能的宏,在編譯時,預處理器會用別的文本取代該宏。

插入頭文件的內容

#include命令告訴預處理器將指定頭文件的內容插入到預處理器命令的相應位置。有兩種方式可以指定插入頭文件:

1、#include<文件名>

2、#include"文件名"

如果需要包含標准庫頭文件或者實現版本所提供的頭文件,應該使用第一種格式。如下例所示:

#include&lt;math.h&gt;//一些數學函數的原型,以及相關的類型和宏

如果需要包含針對程序所開發的源文件,則應該使用第二種格式。

採用#include命令所插入的文件,通常文件擴展名是.h,文件包括函數原型、宏定義和類型定義。只要使用#include命令,這些定義就可被任何源文件使用。

7. C語言~十個數字從小到大怎麼排列~從大到小呢~

//要求任意輸入10個數,然後按從小到大順序輸出
#include <stdio.h>
int main()
{
int a[10];
int i,j;
int temp;
printf("請輸入10個整數:");
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<9;i++)
{
for(j=0;j<9-i;j++)
{
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
printf("排列後順序為:");
for(i=0;i<10;i++)
{
printf("%d ",a[i]);
}
printf(" ");
return 0;
}

8. c語言 定義一個函數,將一個一維數組中數據從小到大排序

#include<stdio.h>
#define N 10
void sortarray(int *a,int n) { int i,j,k;
for ( i=0;i<n-1;i++ ) for ( j=i+1;j<n;j++ ) if ( a[i]>a[j] ) {k=a[i];a[i]=a[j];a[j]=k;}
}
void main() { int a[N],i;
for ( i=0;i<N;i++ ) scanf("%d",&a[i]);
for ( i=0;i<N;i++ ) printf("%d ",a[i]); printf("\n");
sortarray(a,N);
for ( i=0;i<N;i++ ) printf("%d ",a[i]); printf("\n");
}

9. c語言 把一組數(n位)從小到大輸出,大神幫忙啊!!快哭了

C語言中有快速排序函數,使用排序然後輸出。

10. 在c語言編程中如何將1-10的數從小到大排列。

冒泡法!在我們寫程序的時候,通常都會對一組數據進行排序,常用的方法有冒泡法和選擇法,我主要寫下我對冒泡法的理解和心得。

冒泡法:顧名思義,就是把小的數據向前排,也就是向上浮起,並因此進行排序。

例:

#include "stdio.h" 包含頭文件
void main() 主函數
{
int a[10],t,i,j; 定義要用的數據和數祖
printf("input the ten number:\n"); 顯示輸出
for(i=0;i<10;i++)
scanf("%d",&a[i]); 利用循環接受數據
for(j=0;j<10;j++)
for(i=0;i<9-j;i++)
if(a[i]>a[i+1])
{
t=a[i];
a[i]=a[i+1]; 這個就是冒泡的要義了,這個語句是進行冒泡的,下面會有解釋
a[i+1]=t;
}
for(i=0;i<10;i++)
printf("%d\t",a[i]); 循環輸出排序後的數據
}