C语言编写一个排序函数(对一维数组排序)并在主函数中调用 定义一个函数,使用冒泡法对一个数组中的size个整数进行排序...

c\u8bed\u8a00 \u7f16\u5199\u4e00\u4e2a\u6392\u5e8f\u51fd\u6570,\u5b9e\u73b0\u5bf9\u4e3b\u51fd\u6570\u4e2d\u6570\u7ec4\u7684\u5347\u5e8f\u6392\u5e8f.

\u7ecf\u5178\u7684\u4e24\u4e2a\u6392\u5e8f\uff1a
\uff081\uff09\u9009\u62e9\u6392\u5e8f
#include
main()
{
int a[5];
int i,j,k,t;
for (i=0;i<5;i++)
scanf("%d",&a[i]);
for (i=0;i<4;i++)
{
k=i;
for(j=i+1;j<5;j++)
if(a[k]>a[j])
k=j;
if(k!=i)
{
t=a[k];
a[k]=a[i];
a[i]=t;
}
}
for(i=0;i<5;i++)
printf("%3d",a[i]);
}



\uff082\uff09\u5192\u6ce1\u6392\u5e8f

#include
main()
{
int a[5];
int i,j,t;
for (i=0;i<5;i++)
scanf("%d",&a[i]);
for (i=0;i<4;i++)
for(j=0;j<4-i;j++)
{
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
for (i=0;i<5;i++)
printf("%3d",a[i]);
}

#include
#define size 10
void main()
{
int a[10]; //\u5b9a\u4e49\u4e00\u4e2a\u6570\u7ec4\u65e2\u5b83\u7684\u5143\u7d20\u4e3a10
int i,j,temp; //\u5b9a\u4e493\u4e2a\u53d8\u91cf
printf("\u8f93\u516510\u4e2a\u6574\u6570\uff1a\n\a");
for(i=0;i<10;i++)
scanf("%d",&a[i]); //\u4f9d\u6b21\u8f93\u516510\u4e2a\u6574\u6570
for(i=0;i<9;i++) //\u8fdb\u884c9\u8f6e\u6392\u5e8f
{
for(j=0;j<9-i;j++) //\u6bcf\u8f6e\u8fdb\u884c9-i\u6b21\u4ea4\u6362
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1]; //\u5927\u7684\u6c89\u5e95\uff0c\u5c0f\u7684\u4e0a\u6d6e
a[j+1]=temp;
}
}
printf("\u6392\u5e8f\u7ed3\u679c:");
for(i=0;i<10;i++) //\u4f9d\u6b21\u8f93\u51fa\u6392\u5e8f\u7ed3\u679c
printf("%d\t ",a[i]);
}

以下是一个使用C语言编写一维数组排序函数并在主函数中调用的示例代码,采用的是从小到大排序的方式,可以根据需要进行修改:

```c
#include <stdio.h>

// 排序函数,参数为待排序数组和数组长度
void sort(int arr[], int len) {
int i, j, tmp;
// 冒泡排序
for (i = 0; i < len - 1; i++) {
for (j = 0; j < len - i - 1; j++) {
if (arr[j] > arr[j + 1]) { // 相邻元素比较,如果前面的大于后面的,则交换位置
tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
}
}
}
}

int main() {
int arr[] = { 3, 1, 5, 7, 2, 4, 6 };
int len = sizeof(arr) / sizeof(int);
int i;

// 输出排序前的数组
printf("排序前:
");
for (i = 0; i < len; i++) {
printf("%d ", arr[i]);
}
printf("
");

// 调用排序函数进行排序
sort(arr, len);

// 输出排序后的数组
printf("排序后:
");
for (i = 0; i < len; i++) {
printf("%d ", arr[i]);
}
printf("
");

return 0;
}
```

在上面的代码中,我们定义了一个`sort`函数,实现了一维数组排序,并接受待排序数组和数组长度为参数。排序的算法采用的是冒泡排序,每次比较相邻元素的大小并交换它们的位置,直到排序完成。

在主函数中,我们声明了一个待排序的一维数组`arr`,并计算了数组长度。然后,我们输出了排序前的数组,并调用`sort`函数进行排序。最后,我们输出排序后的数组。

需要注意的是,排序函数的实现方式可以有多种,根据实际需求和数据类型的不同,选择合适的排序算法可以提高排序的效率和准确性。在调用排序函数时,需要确保输入的参数正确和合法,避免出现数组越界等错误。

for(j=i+1;j<n;j++)
{
if(a[j+1]>a[i])//a[j+1]改成a[j]
{
t=a[i];
a[i]=a[j+1];//a[j+1]改成a[j]
a[j+1]=t;//a[j+1]改成a[j]
}
}

我这里输入 1 2 3 4 5 6 7 8 9 10 是没有错误的,不知道你的错误是什么,能发出来看看么

  • C璇█缂栧啓涓涓帓搴忓嚱鏁(瀵逛竴缁鏁扮粍鎺掑簭)骞跺湪涓诲嚱鏁颁腑璋冪敤
    绛旓細// 鎺掑簭鍑芥暟锛屽弬鏁颁负寰呮帓搴忔暟缁勫拰鏁扮粍闀垮害 void sort(int arr[], int len) { int i, j, tmp;// 鍐掓场鎺掑簭 for (i = 0; i < len - 1; i++) { for (j = 0; j < len - i - 1; j++) { if (arr[j] > arr[j + 1]) { // 鐩搁偦鍏冪礌姣旇緝锛屽鏋滃墠闈㈢殑澶т簬鍚庨潰鐨勶紝鍒...
  • 缂栧啓sort鍑芥暟,瀹炵幇鐢ㄩ夋嫨鎺掑簭娉曞瀛楃涓缁鏁扮粍涓瓨鍌ㄧ殑鏈夋晥瀛楃鎸夐檷搴忔帓...
    绛旓細璇疯緭鍏ヤ竴涓瓧绗︿覆,瀛楃鏁版渶澶255涓:abioqujakdnciuyewqrjklvjlduioauior鎺掑簭鍚庣粨鏋: ywvuuuurrqqooonllkkjjjiiiieddcbaaa 鏈洖绛旂敱鎻愰棶鑰呮帹鑽 涓炬姤| 绛旀绾犻敊 | 璇勮 2 4 cdyzxy 閲囩撼鐜:83% 鏉ヨ嚜鍥㈤槦:鐢佃剳鎴戞噦浣 鎿呴暱: C/C++ 涓烘偍鎺ㄨ崘: qsort鍑芥暟 sort鍑芥暟婧愮爜 缂栧啓涓涓嚱鏁sort_xz 缁濆鍊肩殑鍑...
  • C璇█涓氳繃鍑芥暟璋冪敤瀵逛竴缁鏁扮粍杩涜鎺掑簭
    绛旓細define MAXlen 100 void select_sort(int *x, int n) { //閫夋嫨鎺掑簭 int i, j, min;int t;for (i = 0; i < n - 1; i++) { // 瑕侀夋嫨鐨勬鏁帮細0~n-2鍏眓-1娆 min = i; // 鍋囪褰撳墠涓嬫爣涓篿鐨勬暟鏈灏忥紝姣旇緝鍚庡啀璋冩暣 for (j = i + 1; j < n; j++) { /...
  • 鐢–璇█濡備綍灏涓涓竴缁鏁扮粍涓殑鍏冪礌闅忔満鎺掑簭
    绛旓細鍒╃敤rand()鍑芥暟浜х敓闅忔満鏁板瓧锛宺and()%n浜х敓灏忎簬n鐨勯殢鏈烘暟锛岀劧鍚庝氦鎹傝繍琛岀殑缁撴灉锛歩nclude include intmain(){ int&nbs 鍒╃敤rand()鍑芥暟浜х敓闅忔満鏁板瓧锛宺and()%n浜х敓灏忎簬n鐨勯殢鏈烘暟锛岀劧鍚庝氦鎹
  • 鐢–璇█缂栧啓鍑芥暟,鍔熻兘鏄彲浠ュ疄鐜涓缁鏁扮粍鐨勪粠灏忓埌澶х殑鎺掑簭,鏁扮粍闀垮害涓...
    绛旓細a[i+1]=temp; } } }int main(){ int a[8]={8,7,6,5,4,3,2,1}; func(a); for(int i=0;i<8;i++) { printf("%d ",a[i]); } return 0;}func灏辨槸鍔熻兘鍑芥暟瀹炵幇鏁扮粍a[8]鐨鎺掑簭銆
  • C璇█缂栫▼:缂栧啓璁$畻涓缁鏁扮粍鎺掑簭鐨鍑芥暟(鐢卞ぇ鍒板皬)
    绛旓細h>main(){ int a[10],i,j,t; for(i=0;i<10;i++) scanf("%d",&a[10]); 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;} } } for(i=0;i<10;...
  • 涓缁鏁扮粍鐨鎺掑簭,鐢–璇█鍐銆俀AQ姹傚府蹇
    绛旓細if(score[j]>score[j+1]){int t=score[j];score[j]=score[j+1];score[j+1]=t;}}int main(){ int n; printf("璇疯緭鍏ヨ鎺掑簭鐨勪釜鏁癨n"); scanf("%d",&n); int s[n]; printf("璇疯緭鍏%d涓暟\n",n); for(int i=0;i<n;i++)scanf("%d",&s[...
  • C璇█濡備綍浣跨敤鍑芥暟璋冪敤鏉鍋氫竴缁鏁扮粍鎺掑簭?璋㈣阿浜
    绛旓細include<iostream.h> void paixu(int a[]){ int max;for(int i=0;i<9;i++){for(int j=0;ja[i]){ max=a[j];a[j]=a[i];a[i]=max;} } } for(i=0;i<9;i++)cout<<a[i]<<" ";} void main(){ int a[]={1,5,3,4,5,6,8,7,9};paixu(a);} ...
  • 鐢–璇█濡備綍浣跨敤鍑芥暟璋冪敤鏉鍋氫竴缁鏁扮粍鎺掑簭?璋㈣阿浜
    绛旓細include void InsertSort(int L[]) { // 瀵归『搴忚〃L浣滅洿鎺ユ彃鍏鎺掑簭 int i,j;for (i = 2; i <= 100; ++i)if (L[i] < L[i-1]) { L[0] = L[i];for (j = i-1; L[0] < L[j]; --j)L[j+1] = L[j];L[j+1] = L[0];} } // InsertSort void BInsertSort...
  • 姹c璇█澶х 鍐欎互涓鍑芥暟 1涓缁鏁扮粍杈撳叆 2涓缁存暟缁勮緭鍑 3鎺掑簭 鐢ㄤ富...
    绛旓細涓嬮潰鐨勭▼搴忥紝 1涓缁鏁扮粍杈撳叆 2涓缁存暟缁勮緭鍑 3鎺掑簭 鐢ㄤ富鍑芥暟璋冪敤涓涓嚱鏁 杈惧埌鎸囧畾鐨勫姛鑳斤細#include void in_a(int a[],int &n){ int i; scanf("%d",&n); for(i=0; i<n; i++) scanf("%d",&a[i]);}void out_a(int a[],int n){ int i; for(i=0; i<n; i++...
  • 扩展阅读:扫一扫题目出答案 ... c++编程必背50个代码 ... c++入门程序代码 ... c#一般用来开发什么 ... c++排序函数 ... c++中<< ... c++编程适合几岁学 ... c语言将一个数组排序 ... 冒泡排序c语言写法 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网