數字排列編程
1. 怎樣通過計算機編程將一列數從大到小排列
編程中有很多「排序」演算法,比如每次把一列數循環訪問一遍,記錄下最大的數,輸出,並從這列數中去除。如此反復,每次都取出剩餘數列中最大的數,直到所有數都被輸出。這列數就被從大到小排列了。這就是最簡單的一種排序。
2. 數字排列組合編程
這么難
3. 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;
}
(3)數字排列編程擴展閱讀:
代碼還可以設計,如下:
#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(" ");
}
4. 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;
}
(4)數字排列編程擴展閱讀:
include用法:
#include命令預處理命令的一種,預處理命令可以將別的源代碼內容插入到所指定的位置;可以標識出只有在特定條件下才會被編譯的某一段程序代碼;可以定義類似標識符功能的宏,在編譯時,預處理器會用別的文本取代該宏。
插入頭文件的內容
#include命令告訴預處理器將指定頭文件的內容插入到預處理器命令的相應位置。有兩種方式可以指定插入頭文件:
1、#include<文件名>
2、#include"文件名"
如果需要包含標准庫頭文件或者實現版本所提供的頭文件,應該使用第一種格式。如下例所示:
#include<math.h>//一些數學函數的原型,以及相關的類型和宏
如果需要包含針對程序所開發的源文件,則應該使用第二種格式。
採用#include命令所插入的文件,通常文件擴展名是.h,文件包括函數原型、宏定義和類型定義。只要使用#include命令,這些定義就可被任何源文件使用。
5. 數字排列(程序)怎樣編
#include <iostream>
void print(int *arr, int length) {
for (int i = 0; i < length; ++i) {
std::cout << *(arr + i);
}
std::cout << std::endl;
}
void swap(int *arr1, int *arr2) {
int temp = *arr1;
*arr1 = *arr2;
*arr2 = temp;
}
void permutate(int *arr, int length, int *subArr, int subLen) {
if (subLen == 1) { print(arr, length); }
else {
for (int i = 0; i < subLen; ++i) {
swap(subArr, subArr + i);
permutate(arr, length, subArr + 1, subLen - 1);
swap(subArr, subArr + i);
}
}
}
void permutate(int *arr, int length) {
permutate(arr, length, arr, length);
}
int main()
{
int n;
std::cout << "enter a number n: (1 <= n <= 9)" << std::endl;
std::cin >> n;
int *arr = new int[n];
for (int i = 0; i < n; ++i) {
arr[i] = i + 1;
}
permutate(arr, n);
delete [] arr;
return 0;
}
6. 把 4個數字用編程大方法由大到小排序。
將四個數字用編程方法由大到小排序,程序如下:
dim a as single,b as single,c as single,d as single
a=val(inputbox("輸入a:"))
b=val(inputbox("輸入b:"))
c=val(inputbox("輸入c:"))
d=val(inputbox("輸入d:"))
if a<b then m=a:a=b:b=m
if a<c then m=a:a=c:c=m
if a<d then m=a:a=d:d=m
if b<c then m=b:b=c:c=m
if b<d then m=b:b=d:d=m
if c<d then m=c:c=d:d=m
print a,b,c,d
7. c語言編程:對10個數冒泡排序(升序)。
#include<stdio.h>
intmain(){
intnumber[10]={95,45,15,78,84,51,24,12,34,23};
for(int j=0;j< 9;j++)
for(int i=0;i< 9 -j;i++) {
if(a[i]>a[i+1]) {
int temp=a[i];a[i]=a[i+1];
a[i+1]=temp; }
}
for(int i=0;i< 10;i++){
printf(「%d」,a[i]); }
}
插入排序
已知一組升序排列數據a[1]、a[2]、……a[n],一組無序數據b[1]、b[2]、……b[m],需將二者合並成一個升序數列。
首先比較b[1]與a[1]的值,若b[1]大於a[1],則跳過,比較b[1]與a[2]的值,若b[1]仍然大於a[2],則繼續跳過,直到b[1]小於a數組中某一數據a[x],則將a[x]~a[n]分別向後移動一位,將b[1]插入到原來a[x]的位置這就完成了b[1]的插入。
b[2]~b[m]用相同方法插入。
快速排序
快速排序是大家已知的常用排序演算法中最快的排序方法。已知一組無序數據a[1]、a[2]、……a[n],需將其按升序排列。首先任取數據a[x]作為基準。
比較a[x]與其它數據並排序,使a[x]排在數據的第k位,並且使a[1]~a[k-1]中的每一個數據<a[x],a[k+1]~a[n]中的每一個數據>a[x],然後採用分治的策略分別對a[1]~a[k-1]和a[k+1]~a[n]兩組數據進行快速排序。
希爾排序
已知一組無序數據a[1]、a[2]、……a[n],需將其按升序排列。
首先取一增量d(d<n),將a[1]、a[1+d]、a[1+2d]……列為第一組,a[2]、a[2+d]、a[2+2d]……列為第二組……,a[d]、a[2d]、a[3d]……列為最後一組以次類推,在各組內用插入排序,然後取d'<d,重復上述操作,直到d=1。
8. C#編程,數字排序
你應該是想隨便輸入一些字元,在從大到小排序吧
//冒泡排序
int[] scores=new int[5];
int i, j;//循環變數
int temp;//臨時變數
Console.WriteLine("輸入5個數字:");
for (i = 0; i < 5; i++)
{
Console.WriteLine("輸入第{0}數",i+1);
scores[i] = int.Parse(Console.ReadLine());
}
//開始排序
for (i = 0; i < scores.Length - 1;i++ )
{
//將最大元素交換到最後
for (j = 0; j < scores.Length - 1 - i; j++)
{
if (scores[j] > scores[j + 1])
{
temp = scores[j];
scores[j] = scores[j + 1];
scores[j + 1] = temp;
}
}
}
//輸出結果
for (i = 0; i < 5; i++)
{
Console.WriteLine("{0}\t",scores[i]);
}
Console.ReadLine();
大到小排序也相同