用函数调用的方法实现对一维数组中元素按从大到小的顺序排序 C语言中通过函数调用对一维数组进行排序

\u7528\u51fd\u6570\u8c03\u7528\u6cd5\u5bf9\u6709\u5341\u4e2a\u6570\u7ec4\u5143\u7d20\u7684\u4e00\u7ef4\u6570\u7ec4\u6309\u7531\u5c0f\u5230\u5927\u8fdb\u884c\u6392\u5e8f\u8f93\u51fa

#include
void sort(int arr[],int n);
void main()
{int a[10],*p,i;
printf("input 10 numbers:");
for (i=0; i<10; i++)
scanf("%d",&a[i]);
printf("\nthe original array is:");
for(p=a;p<a+10;p++)
printf("%d",*p);
sort(a,10);
printf("\nthe present array is:");
for (p=a; p<a+10; p++)
printf("%d ",*p);
}
void sort(int arr[ ],int n)
{int *p1,*p2,temp;
for (p1=arr ; p1<arr+(n-1); p1++)
for ( p2=p1+1; p2<arr+n; p2++)
if (*p1>*p2)
{ temp=*p1; *p1=*p2; *p2=temp; }
}

#include
#include
#include
#define MAXlen 100
void select_sort(int *x, int n) { //\u9009\u62e9\u6392\u5e8f
int i, j, min;
int t;
for (i = 0; i < n - 1; i++) { // \u8981\u9009\u62e9\u7684\u6b21\u6570\uff1a0~n-2\u5171n-1\u6b21
min = i; // \u5047\u8bbe\u5f53\u524d\u4e0b\u6807\u4e3ai\u7684\u6570\u6700\u5c0f\uff0c\u6bd4\u8f83\u540e\u518d\u8c03\u6574
for (j = i + 1; j < n; j++) { //\u5faa\u73af\u627e\u51fa\u6700\u5c0f\u7684\u6570\u7684\u4e0b\u6807\u662f\u54ea\u4e2a
if (*(x + j) < *(x + min)) {
min = j; // \u5982\u679c\u540e\u9762\u7684\u6570\u6bd4\u524d\u9762\u7684\u5c0f\uff0c\u5219\u8bb0\u4e0b\u5b83\u7684\u4e0b\u6807
}
}
if (min != i) { // \u5982\u679cmin\u5728\u5faa\u73af\u4e2d\u6539\u53d8\u4e86\uff0c\u5c31\u9700\u8981\u4ea4\u6362\u6570\u636e
t = *(x + i);
*(x + i) = *(x + min);
*(x + min) = t;
}
}
}
int main() {
int i;
int iArr[MAXlen];
srand((unsigned int)time(NULL));
printf("\n\u6392\u5e8f\u524d:\n");
for(i = 0 ; i < MAXlen ; i++) {
iArr[i] = (unsigned int)rand() % 1000;
if(i % 10 == 0) printf("%\n");
printf("%5d",iArr[i]);
}
printf("\n");
select_sort(iArr,MAXlen);
printf("\n\u6392\u5e8f\u540e:\n");
for(i = 0 ; i < MAXlen ; i++) {
if(i % 10 == 0) printf("%\n");
printf("%5d",iArr[i]);
}
printf("\n\n");
return 0;
}

从大到小: 交换判断条件用 if(a[i]<a[i+1])。
函数调用语句: p(b); 或 p(c);
数组 int a[5]; 语句中下标只能用到 a[4];
给你改了函数,数据由参数带入,排队结果由参数带回。
#include <stdio.h>
int main()
{void p(int a[5]);
int c[5],i;
int b[5]={0,5,4,3,2};
for (i=0;i<5;i++) c[i]=b[i];
p(c);
for (i=0;i<5;i++) printf("%d ",c[i]);
return 0;
}
void p(int a[5])
{
int i,j,t;
for(j=0;j<4;j++)
for(i=0;i<4-j;i++)
if(a[i]<a[i+1]) {t=a[i];a[i]=a[i+1];a[i+1]=t;};
}

  • 缂栧啓瀵瑰叿鏈塶涓厓绱犵殑涓缁存暟缁姹傚拰鍑芥暟ArraySum()
    绛旓細瑕佹眰鐢ㄦ寚閽堜綔涓哄嚱鏁板弬鏁帮紝骞跺湪涓诲嚱鏁癿ain()涓璋冪敤杩欎釜鍑芥暟锛瀹炵幇瀵鍏锋湁10涓厓绱鐨勪竴缁存暟缁姹傚拰銆傚叿浣撹姹傚涓嬶細 锛1锛夌敤input()鍑芥暟寤虹珛鏁扮粍锛 锛2锛夌敤sum()鍑芥暟瀵鏁扮粍鍏冪礌姹傚拰锛 锛3锛夌敤main()鍑芥暟浣滀负涓绘帶鍑芥暟銆倂oid input(int *p,n){int i;for(i=0;i锛渘;i++)scanf("%d",p+i);} int...
  • 鐢–++浣夸竴涓涓缁存暟缁勮皟鐢ㄥ嚱鏁板疄鐜闄嶅簭鎺掑垪,姹備唬鐮
    绛旓細void sort1(int *a, int n){ int i,j; int t; for(i = 0; i < n; i ++) { for(j = i+1; j < n; j ++) { if(a[i]
  • c璇█缂栫▼:鐢ㄦ暟缁勫悕浣鍑芥暟鍙傛暟,缂栧啓涓涓瀵逛竴缁存暟缁姹傚钩鍧囧肩殑鍑芥暟,骞跺湪...
    绛旓細include <stdlib.h> include <string.h> float b(float arr[],int n); //<<<灏戜簡鍑芥暟澹版槑 void main(){ float a[50];int i,n=0;for(i=0;getchar()!='\n';i++){ scanf("%f",&a[i]);n++;} printf("骞冲潎鍊兼槸锛%f",b(a,n) ); //<<<b杩欎釜鍑芥暟浼犵殑鏄鏁扮粍鐨勯鍦板潃...
  • 鐢ㄥ嚱鏁拌皟鐢ㄧ殑鏂瑰紡,姹1涓涓缁娴偣鍨鏁扮粍鐨勬渶澶у,鏈灏忓,鍜?
    绛旓細include<stdio.h> float Max;float Min;void main(){ void M(float a[10]);float a[10];int i;printf("input 10 numbers: ");for(i=0;i<10;i++)scanf("%f",a[i]);M(a);printf("The max is %f.\nThe min is %f,",Max,Min);} void M(float a[10]){ int i;Max=a[...
  • c璇█, 缂栧啓涓涓鍑芥暟,瀹屾垚涓缁存暟缁鐨勯嗙疆銆備富鍑芥暟涓緭鍏ヤ竴涓竴缁存暟缁...
    绛旓細include "stdio.h"void arrrev(int *p,int n){int *q,t;for(q=p+n-1;p<q;p++,q--)t=*p,*p=*q,*q=t;}int main(int argc,char *argv[]){int a[100],n,i;printf("Please enter a set of integers(other end)...\n");for(n=0;n<100;n++)if(scanf("%d",a+n)!=...
  • ...缂栧啓涓涓涓缁存暟缁姹傚钩鍧囧肩殑鍑芥暟,鍦ㄤ富鍑芥暟涓璋冪敤銆傝姹傛暟缁勫悕鍋氬弬鏁...
    绛旓細include<stdio.h> const int N=3000;int n;double array[N];double getAverage(double a[]){ int i;double sum=0;for(i=0;i<n;i++)sum+=a[i];return sum/n;} int main(){ int i;printf("杈撳叆鏁扮粍鐨勫厓绱犱釜鏁 n :\n");scanf("%d",&n);printf("渚濇杈撳叆n涓厓绱狅細\n");for...
  • 濡備綍璋冪敤鍑芥暟,鎬庝箞浼涓缁存暟缁浼氭敼鍙樻暟缁勯噷闈㈢殑鍊
    绛旓細鐩存帴浼鏁扮粍棣栧湴鍧灏卞彲浠 void test(int a[]){ a[0] = 897;} int main(){ int a[] = {1,2,3};test(a);printf("%d",a[0]);system("pause");return 0锛泒
  • 姹俢璇█澶х 鍐欎互涓鍑芥暟 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++...
  • (鍑芥暟+鏁扮粍)鍐欎竴涓嚱鏁,姹涓缁存暟缁a涓殑濂囨暟涓暟,鍦ㄤ富鍑芥暟涓璋冪敤鍑芥暟骞...
    绛旓細int CalcCount(int a[], int nSize){ int nCount = 0;for(int i = 0; i < nSize; i++){ if(a[i] % 2 == 1){ nCount++;} } return nCount;} void main(){ int a[10] = {5,6,6,9,7,1,2,0,1,7};printf("濂囨暟涓暟涓猴細%d\n", CalcCount(a, 10));system("...
  • C++,鍦ㄤ竴涓涓缁存暟缁涓,鏁扮粍鐢ㄩ敭鐩樿緭鍏,姹傛渶澶у,鏈灏忓煎拰骞冲潎鍊,瑕佺敤...
    绛旓細include<iostream>using namespace std;double Average(const int*a,int length){double sum=0;for(int i=0;i<length;i++){sum+=a[i];}return (sum/length);}int GetMax(const int*a,int length){int max=a[0];for(int i=1;i<length;i++){if(max<a[i]){max=a[i];}}return...
  • 扩展阅读:函数调用的三种方式 ... 函数调用的详细步骤 ... matlab调用另一个m文件 ... matlab调用自己写的函数 ... 函数调用的三个步骤 ... c语言如何调用函数 ... 函数调用的方法有哪些 ... 能用多个调用函数吗 ... 函数调用过程的四个步骤 ...

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