當前位置:首頁 » 編程語言 » c語言從大到小輸出for

c語言從大到小輸出for

發布時間: 2024-09-28 03:26:34

c語言排序,從大到小 for(i=0;i<N-1;i++)和for(j=i;j<N;j++)不懂,尤其是為什麼j=i

這是選擇排序。
就是說,先選出最大的一個,放在數組的第一位(array[0]);然後再選次大的,放在第二位(array[1]),依此類推……
循環中的i 表示已經排好序的元素個數,j從i 循環到n,找出最大的一個(其實是整個數組里第i大的,因為前面已經有i個數排好序了),和array[i]交換
然後i++,相當於這個數值已經被放到合適的位置上,以後不考慮它了,接著排後面的。
i前面的元素都已經排好序了,還管它們幹嘛,所以for(j=i;j<n;j++),是讓j從i 循環到n,接著找最大的
至於你說的,當j==i時比較array[i]和array[j]沒什麼用,確實是,但是電腦是不計較這點浪費的,所以如果這樣能讓你寫起來更順手,大家一般是不會在意多浪費幾次的。反正浪費的次數加起來也費不了1ms
如果你不喜歡這樣寫,你也可以寫for(j=i+1;j<n;j++),沒有任何問題。

Ⅱ c語言編寫,計算一矩陣的特徵值,按從大到小排序輸出。

#include<stdio.h>
int main()
{
int a[3][5],i,j,k,temp;

//通過讀取給3×5的數組賦值
for(i=0;i<3;i++)
for(j=0;j<5;j++)
scanf("%d",&a[i][j]);

//一行一行的判斷
for(k=0;k<3;k++)
{
//標准冒泡法
for (j = 0; j < 9; j++)
{
for (i = 0; i < 9 - j; i++)
{
if (a[k][i] < a[k][i + 1])
{
temp = a[k][i];
a[k][i] = a[k][i + 1];
a[k][i + 1] = temp;
}
}
}
for(i=0;i<3;i++)
{
for(j=0;j<5;j++)
printf("%d\t",a[i][j]);
printf("\n");
}
}

Ⅲ c語言 輸入十個整數,從大到小排序,並輸出來。求解題思路

1、數組形式。

解題思路: 判斷比較的躺數,每趟相鄰的兩個數再進行比較,應用兩次 for 循環

具體代碼:

void PrintArr(int* arr, int sz)

{

int i = 0;

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

{

printf("%d ", *(arr + i));

}

return 0;

}

void BubbleSort(int arr[],int sz)

{

int i = 0;

for (i = 0; i < sz - 1; i++)

{

int j = 0;

for (j = 0; j < sz - i - 1; j++)//用for循環的元素個數控住多少趟

{

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

{

int tmp = arr[j];

arr[j] = arr[j+1];

arr[j + 1] = tmp;

}

}

}

}

int main()

{

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

int sz = sizeof(arr) / sizeof(arr[0]);

BubbleSort(arr, sz);

PrintArr(arr, sz);

system("pause");

return 0;

}

2、指針形式。

創建兩個變數start、end,記住數組起始與結束位置元素的地址,應用兩次 while 循環交換地址

指針冒泡排序 :

void PrintArr(int* arr, int sz)

{

int i = 0;

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

{

printf("%d ", *(arr + i));

}

return 0;

}

void BubbleSort(int *arr, int sz)

{

int start = arr;

int end = arr + sz - 1;

//趟數

while (start < end)

{

int *cur = start;

while (cur < end)

{

if (*cur > *(cur+1))

{

int tmp = *cur;

*cur = *(cur + 1);

*(cur + 1) = tmp;

}

cur++;

}

end--;

}

}

int main()

{

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

int sz = sizeof(arr) / sizeof(arr[0]);

BubbleSort(arr, sz);

PrintArr(arr, sz);

system("pause");

return 0;

}

(3)c語言從大到小輸出for擴展閱讀:

演算法原理

冒泡排序演算法的原理如下:

比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。

對每一對相鄰元素做同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。

針對所有的元素重復以上的步驟,除了最後一個。

持續每次對越來越少的元素重復上面的步驟,直到沒有任何一對數字需要比較。

熱點內容
C語言項目案例分析 發布:2024-11-24 17:14:48 瀏覽:977
河內塔演算法 發布:2024-11-24 17:03:05 瀏覽:725
為什麼文件夾只讀 發布:2024-11-24 16:56:02 瀏覽:170
無線監控怎麼存儲 發布:2024-11-24 16:46:43 瀏覽:598
英朗買什麼配置 發布:2024-11-24 16:40:44 瀏覽:346
殺戮解壓法 發布:2024-11-24 16:40:36 瀏覽:945
避孕套存儲箱 發布:2024-11-24 16:25:09 瀏覽:735
如何自己搭建雲伺服器干貨 發布:2024-11-24 16:22:08 瀏覽:371
安卓怎麼返回出廠系統 發布:2024-11-24 16:20:32 瀏覽:447
求生之路sp源碼 發布:2024-11-24 16:06:05 瀏覽:373