c語言二維數組大小排序,C語言數組大小排序

本文目錄一覽:

C語言 對二維數組a【5】【10】進行從大到小排序 我是新手,代碼越簡單越好

#include stdio.h

int main()

{

int i,j,t,k=0,a[5][10],b[50];

for(i=0;i5;i++)

for(j=0;j10;j++)

{

scanf(“%d”,a[i][j]);

b[k]=a[i][j];k++;

}

for(i=0;i49;i++)

for(j=i+1;j50;j++)

if(b[i]b[j])

{t=b[i];b[i]=b[j];b[j]=t;}

k=0;

for(i=0;i5;i++)

{

for(j=0;j10;j++)

{

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

k++;

printf(“%d “,a[i][j]);

}

printf(“\n”);

}

return 0;

}

如何用C語言的qsort對二維數組排序?

建議你這樣試試看:

先定義數組大小:

然後定義一個數組比較函數:

注意事項:

更安全的調用方式為qsort_s;

然後調用 qsort函數進行排序,具體邏輯如下:

代碼合併如下:

這裡只是根據你的數據生成了二維數組,可以根據你的具體情況進行調整;另外,關於qsort函數的用法,參考:qsort

關於比較函數的返回值,這裡有一個表:

最後,以上代碼的運行結果如下:

C語言 如何對二維數組進行按列排序?

無論是多少維的數組,機內都是一維的,以行優先存放。所以直接降為一維數組排序最方便省事。下面以二維數組為例寫出代碼——

#include “stdio.h”

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

int x[3][3]={{9,4,3},{6,2,7},{5,8,1}},i,j,k,*p;

printf(“Before ordering is as follows:\n”);

for(i=0;i3;i++){

for(j=0;j3;printf(“%2d”,x[i][j++]));

printf(“\n”);

}

for(p=(int *)x,i=0;i9;i++){//用p=(int *)x將x降為一維數組p,選擇法排序

for(k=i,j=k+1;j9;j++)

if(p[k]p[j])

k=j;

if(k!=i)

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

}

printf(“Sorted as follows:\n”);

for(i=0;i3;i++){//輸出排序後的二維數組

for(j=0;j3;printf(“%2d”,x[i][j++]));

printf(“\n”);

}

return 0;

}

運行結果:

C語言程序題,根據二維數組第二個數的大小排序從小到大。

#include stdio.h

void sort(int a[][2],int n) {

int i,j,k,t;

for(i = 0; i  n – 1; ++i) {

k = i;

for(j = i + 1; j  n; ++j) {

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

k = j;

}

if(k != i) {

for(j = 0; j  2; ++j) {

t = a[k][j];

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

a[i][j] = t;

}

}

}

}

int main() {

int a[12][2] = {1,3,3,4,0,7,3,8,15,19,15,20,10,15,8,18,6,12,5,10,4,14,2,9};

int i,j;

printf(“排序前:\n”);

for(i = 0; i  12; ++i) {

for(j = 0; j  2; ++j)

printf(“%4d”,a[i][j]);

printf(“\n”);

}

sort(a,12);

printf(“排序後:\n”);

for(i = 0; i  12; ++i) {

for(j = 0; j  2; ++j)

printf(“%4d”,a[i][j]);

printf(“\n”);

}

return 0;

}

C語言:有二維數組a[N][M],用冒泡排序法對二維數組中的每一行數據進行由小到大的排序,然後輸出

void px( int *a, int n ) //冒泡排序函數

{

int i,j,t;

for( i=0;in-1;i++)

for( j=0;jn-1-i;j++)

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

{

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

}

}

void main()

{

int a[N][M];

int i,j;

for( i=0;iN;i++ )

{

px( a[i], M );

for( j=0;jM;j++ )

{

printf(“%d “, a[i][j] );

}

printf(“\n”);

}

}

C語言!(二維數組統一排序)

#include stdio.h

void bubble(int *a,int n) /*定義兩個參數:數組首地址與數組大小*/

//冒泡

{

int i,j,temp;

for(i=0;in-1;i++)

for(j=i+1;jn;j++) /*注意循環的上下限*/

if(a[i]a[j])

{

temp=a[i];

a[i]=a[j];

a[j]=temp;

}

}

void selectsort(int *a,int n) //選擇排序

{

int i,j,k,temp;

for(i=0;in-1;i++) {

k=i; /*給記號賦值*/

for(j=i+1;jn;j++)

if(a[k]a[j]) k=j; /*是k總是指向最小元素*/

if(i!=k) { /*當k!=i是才交換,否則a[i]即為最小*/

temp=a[i];

a[i]=a[k];

a[k]=temp;

}

}

}

void quick(int *a,int i,int j) //快排

{

int m,n,temp;

int k;

m=i;

n=j;

k=a[(i+j)/2]; /*選取的參照*/

do {

while(a[m]kmj) m++; /* 從左到右找比k大的元素*/

while(a[n]kni) n–; /* 從右到左找比k小的元素*/

if(m=n) { /*若找到且滿足條件,則交換*/

temp=a[m];

a[m]=a[n];

a[n]=temp;

m++;

n–;

}

}while(m=n);

if(mj) quick(a,m,j); /*運用遞歸*/

if(ni) quick(a,i,n);

}

void insert(int *a,int n) //插入

{

int i,j,temp;

for(i=1;in;i++) {

temp=a[i]; /*temp為要插入的元素*/

j=i-1;

while(j=0tempa[j]) { /*從a[i-1]開始找比a[i]小的數,同時把數組元素向後移*/

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

j–;

}

a[j+1]=temp; /*插入*/

}

}

int main()

{

int n,a[100],i,k;

printf(“請輸入有多少個數?\n”);

scanf(“%d”,n);

printf(“依次輸入數組元素\n”);

for (i=0;in;i++)

scanf(“%d”,a[i]);

printf(“請輸入1,2,3,4選擇排序演算法\n”);

scanf(“%d”,k);

switch(k)

{

case 1:bubble(a,n);break;

case 2:selectsort(a,n);break;

case 3:quick(a,0,n-1);break;

default:insert(a,n);break;

}

printf(“結果為\n”);

for (i=0;in;i++)

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

return 0;

}

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/312485.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2025-01-06 09:42
下一篇 2025-01-06 09:47

相關推薦

  • Python導入數組

    本文將為您詳細闡述Python導入數組的方法、優勢、適用場景等方面,並附上代碼示例。 一、numpy庫的使用 numpy是Python中一個強大的數學庫,其中提供了非常豐富的數學函…

    編程 2025-04-29
  • AES加密解密演算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密演算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES演算法,並對實現過程進…

    編程 2025-04-29
  • Python返回數組:一次性搞定多種數據類型

    Python是一種多用途的高級編程語言,具有高效性和易讀性的特點,因此被廣泛應用於數據科學、機器學習、Web開發、遊戲開發等各個領域。其中,Python返回數組也是一項非常強大的功…

    編程 2025-04-29
  • 學習Python對學習C語言有幫助嗎?

    Python和C語言是兩種非常受歡迎的編程語言,在程序開發中都扮演著非常重要的角色。那麼,學習Python對學習C語言有幫助嗎?答案是肯定的。在本文中,我們將從多個角度探討Pyth…

    編程 2025-04-29
  • Python去掉數組的中括弧

    在Python中,被中括弧包裹的數據結構是列表,列表是Python中非常常見的數據類型之一。但是,有些時候我們需要將列表展開成一維的數組,並且去掉中括弧。本文將為大家詳細介紹如何用…

    編程 2025-04-29
  • Python被稱為膠水語言

    Python作為一種跨平台的解釋性高級語言,最大的特點是被稱為”膠水語言”。 一、簡單易學 Python的語法簡單易學,更加人性化,這使得它成為了初學者的入…

    編程 2025-04-29
  • Python操作數組

    本文將從多個方面詳細介紹如何使用Python操作5個數組成的列表。 一、數組的定義 數組是一種用於存儲相同類型數據的數據結構。Python中的數組是通過列表來實現的,列表中可以存放…

    編程 2025-04-29
  • OpenJudge答案1.6的C語言實現

    本文將從多個方面詳細闡述OpenJudge答案1.6在C語言中的實現方法,幫助初學者更好地學習和理解。 一、需求概述 OpenJudge答案1.6的要求是,輸入兩個整數a和b,輸出…

    編程 2025-04-29
  • Python按位運算符和C語言

    本文將從多個方面詳細闡述Python按位運算符和C語言的相關內容,並給出相應的代碼示例。 一、概述 Python是一種動態的、面向對象的編程語言,其按位運算符是用於按位操作的運算符…

    編程 2025-04-29
  • Python二維數組對齊輸出

    本文將從多個方面詳細闡述Python二維數組對齊輸出的方法與技巧。 一、格式化輸出 Python中提供了格式化輸出的方法,可以對輸出的字元串進行格式化處理。 names = [‘A…

    編程 2025-04-29

發表回復

登錄後才能評論