Ⅰ c語言:採用冒泡排序方法,對10個數按由小到大的的順序排序
代碼如下(對10個整數進行升序排序):
#include<stdio.h>
int main()
{
int i,j,t,a[10]={5,4,8,3,6,9,7,222,64,88};
//排序
for(i=1;i<10;i++)//外循環控制排序趟數,n個數排n-1趟
{
for(j=0;j<10-1;j++)//內循環每趟比較的次數,第j趟比較n-i次
{
if(a[j]>a[j+1])//相鄰元素比較,逆序則交換
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
printf("排序後的結果是: ");
for(i=0;i<10;i++)
{
printf("%d",a<i>);
}
printf(" ");
return 0;
}
冒泡法:
演算法分析:如果有n個數,則要進行n-1趟比較。在第1趟比較中要進行n-1次相鄰元素的兩兩比較,在第j趟比較中要進行n-j次兩兩比較。比較的順序從前往後,經過一趟比較後,將最值沉底(換到最後一個元素位置),最大值沉底為升序,最小值沉底為降序。
(1)c語言函數10個數排序擴展閱讀:
include用法:
#include命令預處理命令的一種,預處理命令可以將別的源代碼內容插入到所指定的位置;可以標識出只有在特定條件下才會被編譯的某一段程序代碼;可以定義類似標識符功能的宏,在編譯時,預處理器會用別的文本取代該宏。
插入頭文件的內容
#include命令告訴預處理器將指定頭文件的內容插入到預處理器命令的相應位置。有兩種方式可以指定插入頭文件:
1、#include<文件名>
2、#include"文件名"
如果需要包含標准庫頭文件或者實現版本所提供的頭文件,應該使用第一種格式。如下例所示:
#include<math.h>//一些數學函數的原型,以及相關的類型和宏
如果需要包含針對程序所開發的源文件,則應該使用第二種格式。
採用#include命令所插入的文件,通常文件擴展名是.h,文件包括函數原型、宏定義和類型定義。只要使用#include命令,這些定義就可被任何源文件使用。如下例所示:
#include"myproject.h"//用在當前項目中的函數原型、類型定義和宏
你可以在#include命令中使用宏。如果使用宏,該宏的取代結果必須確保生成正確的#include命令。例1展示了這樣的#include命令。
【例1】在#include命令中的宏
#ifdef _DEBUG_
#define MY_HEADER"myProject_dbg.h"
#else
#define MY_HEADER"myProject.h"
#endif
#include MY_HEADER
當上述程序代碼進入預處理時,如果_DEBUG_宏已被定義,那麼預處理器會插入myProject_dbg.h的內容;如果還沒定義,則插入myProject.h的內容。
Ⅱ 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;
}
(2)c語言函數10個數排序擴展閱讀:
代碼還可以設計,如下:
#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語言,用選擇法對10個數排序,按正負數分開輸出
選擇排序:大循環i依次取元素和後面所有元素比較,找出其中最值,和當前i的元素交換。一次大循環交換一次。
程序思路:
一、排序函數:根據傳參,實現降序升序兩種功能。
二、數組輸出:根據傳參,實現正數和負數輸出兩種功能。
下面是代碼:
#include <stdio.h>
void px(int nums[],int len,int t);//排序
void showNums(int nums[],int len,int t);//輸出
int main()
{
int nums[10]={8,7,-1,2,-5,4,9,-3,-6,1};
printf("原數組:8,7,-1,2,-5,4,9,-3,-6,1 ");
printf("升序排列後: ");
px(nums,10,1);
printf("|---正數為:");
showNums(nums,10,1);
printf("|---負數為:");
showNums(nums,10,0);
//--------------------------------
printf("降序排列後: ");
px(nums,10,0);
printf("|---正數為:");
showNums(nums,10,1);
printf("|---負數為:");
showNums(nums,10,0);
}
void showNums(int nums[],int len,int t)//t=1輸出正數,t=0輸出負數
{
int i;
for(i=0;i<len;i++)
if((t && nums[i]>0)||(!t && nums[i]<0))
printf("%d ",nums[i]);
printf(" ");
}
void px(int nums[],int len,int t)//t=1升序,t=0降序
{
int i,j,k,m;
for(i=0;i<len-1;i++)
{
m=nums[i],k=i;
for(j=i+1;j<len;j++)
if((t && m>nums[j])||(!t && m<nums[j])) m=nums[j],k=j;
m=nums[i],nums[i]=nums[k],nums[k]=m;
}
}
Ⅳ C語言程序設計: 從用戶輸入10個整數,對其按照從小到大的順序排序,並輸出結果。
//要求任意輸入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;
}
(4)c語言函數10個數排序擴展閱讀:
①printf()函數是格式化輸出函數,一般用於向標准輸出設備按規定格式輸出信息。
格式輸出,它是c語言中產生格式化輸出的函數(在stdio.h中定義)。用於向終端(顯示器、控制台等)輸出字元。格式控制由要輸出的文字和數據格式說明組成。
要輸出的文字除了可以使用字母、數字、空格和一些數字元號以外,還可以使用一些轉義字元表示特殊的含義。
簡單點理解就是,在一段程序中你正確使用該函數,可以在該程序運行的時候輸出你所需要的內容。
②printf函數是一個標准庫函數,它的函數原型在頭文件「stdio.h」中。但作為一個特例,不要求在使用printf函數之前必須包含stdio.h文件。
printf()函數的調用格式為:printf("<格式化字元串>",<參量表>)。
其中格式化字元串用於指定輸出格式。格式控制串可由格式字元串和非格式字元串兩種組成。
Ⅳ C語言如何輸入十個數,按從大到小順序排列!
代碼如圖所示:
#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;
}
(5)c語言函數10個數排序擴展閱讀
C語言順序排列題的其他解法
#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;
}
Ⅵ C語言:輸入10個數依次從大到小排序!
用數組來存放十個數字,使用「冒泡排序」來實現排序。10個數字需進行9輪掃描,每次掃描臘並時比較相鄰的二個數,如它們不符合要求的大小關系,就交換它們的岩旁位置。第一輪掃描結束時,最大的數就「沉」到粗局橡最後。於是第二的范圍就少了一個數。再進行第二兩棲型、第三輪,…——直到第9輪就完成了。最後輸出結果。
#include<stdio.h>
int main()
{
int a[10],i,j,t;
printf("請輸入10個整數:\n");
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])
{
t=a[j]; a[j]=a[j+1]; a[j+1]=t;
}
printf("排序以後的數:\n");
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");
system("pause");
return 0;
}
如果要從大到小排,只要把上面的交換條件
if(a[j]>a[j+1])換為
if(a[j]<a[j+1])就可以了。