C语言程序题:写一函数sort(int a,int n)实现对数组a的排序,求各位大佬相助!!

作者&投稿:枝沾 (若有异议请与网页底部的电邮联系)
排序编写函数void sort(int *a,int n),实现对数组a的前n项从小到大顺序(指针)~

看你像是初学者可以使用简单的冒泡排序,容易理解,代码如下:

void sort( int *a,const int n)
{
if( NULL == a) return; /*不能是空指针*/
if( n< 2) return; /* 长度小于2不用排序 */
int i = 0,j=0, tmp=0;
for( i=0; i< n-1; i++)
{
for(j=0;j< n-1-i; j++)
{
if( *(a+j) > *(a+j+1))
{
tmp = *(a+j) ;
*(a+j) = *(a+j+1);
*(a+j+1) = tmp;
}
}
}
}


#include void sort(int a[], int n) {//选择排序int i,j,k,t;for(i = 0; i a[j]) k = j;}if(k != i) {t = a[i];a[i] = a[k];a[k] = t;}}}int main() {int a[] = {21,16,30,21,8,19,33,26,28,27,24,50,13,12};int i,n = sizeof(a)/sizeof(a[0]);printf("排序前:
");for(i = 0; i < n; ++i)printf("%d ",a[i]);printf("
");sort(a,n);printf("排序后:
");for(i = 0; i < n; ++i)printf("%d ",a[i]);printf("
");return 0;}

函数代码如下:

void sort(int a[], int n)
{
int i, j, m;
int temp;
 
for(i = 0; i < n -1; i++)
{
m = i;
for(j = i + 1; j < n; j++)
{
if(a[j] < a[m])
m = j;
}
if(m != i)
{
temp = a[i];
a[i] = a[m];
a[m] = temp;
}
}
}

整个测试如下:

#include <stdio.h>
void sort(int a[], int n)
{
int i, j, m;
int temp;
 
for(i = 0; i < n -1; i++)
{
m = i;
for(j = i + 1; j < n; j++)
{
if(a[j] < a[m])
m = j;
}
if(m != i)
{
temp = a[i];
a[i] = a[m];
a[m] = temp;
}
}
}
int main()
{
    int a[10] = {9, 8, 7, 6, 5, 4, 3, 2, 1, 0};
    sort(a, 10);
    for(int i = 0; i < 10; i ++)
    {
    printf("%d", a[i]);
    }
return 0;
}

结果如下:




求C语言程序:编写一个函数,使给定的一个二维数组(3*3)转置。感激不尽...
include<stdio.h> int main(){int i,j,t,a[3][3]={{1,2,3},{4,5,6},{7,8,9}};printf("原来的数组:\\n");for(i=0;i<3;i++){ for(j=0;j<3;j++)printf("%d ",a[i][j]);printf("\\n");} for(i=0;i<2;i++)for(j=i+1;j<3;j++){t=a[i][j];a[i...

C语言编程,写一个函数,使输入的一个字符串按反序存放,在主函数中输入和...
k=j-1;while(i<j){ b[k]=a;\/\/互换值;i++;k--;} return 0;} int main(){ char c[20];char d[20];int i,l;\/\/gets(c);\/\/输入字符串;scanf("%s",c);\/\/另一种方式;如果输入的是字符串,则不需要加地址符,因为在c语言中数组名代表该数组的起始地址;l=strlen(c);\/\/测试字...

c语言程序设计题 请编写一个函数fun,它的功能是:将ss所指字符串中所有下...
void fun(char *ss){ int i; for(i=0;ss[i];++i) { if(i%2&&ss[i]>='a'&&ss[i]<='z') { ss[i]+='A'-'a'; } }}

C语言程序设计:写一个函数,从给定的身份证号中提取出生年月日_百度知...
这个简单,用以字符串str[20]={身份证号码};出生月日就是倒数第7个元素到第14个元素结束;用一个for循环,如str[20]="45032519901016127X";for(i=6;i<=13;i++) putchar(str[i]);就可以了 结果是19901016,有木有?

一道c语言程序题: 写一个函数,从传入的num个字符串中找出最长的一个字符...
上面的都做出来了我就不做了,就分析下你错的地方:C:\\Documents and Settings\\Administrator\\桌面\\编程\\lianan.c(12) : warning C4047: '!=' : 'int ' differs in levels of indirection from 'char [5]'错误语句:while(*ss[numz-1]!="***");解释:*ss[numz-1]代表一个地址不能等...

一个c语言问题,编写一个函数,从键盘输入一行字符,将此字符串中最长和...
\/\/#include "stdafx.h"\/\/vc++6.0加上这一行.#include "stdio.h"#include "string.h"int main(void){ char str[100][21]; int i,j,lmax,lmin,ln,imax,imin; printf("Type a line text( # end)...\\nstr="); for(i=0;i<100;i++) if(scanf("%s",str[i])...

急!C语言程序题!2.编写一个判断素数的函数ifp。在主函数中调用该函数...
int main(){ int i;int a[N];int fip(int p[N]);printf("请输入10个整数\\n");for (i=0;i<N;i++) { scanf("%d",&a[i]);} printf("找到的素数:\\n");i=fip(a);printf("共找到%d个素数",i);return 0;} int fip(int p[N]){ int i,j,k,n,m,y;n=0;m=1;whil...

C语言题目写一个函数,使输入的一个字符串按反序存放,在主函数中输入和...
可以使用string.h标准函数吗?可以的话 这样做 include <stdio.h>#include <string.h>void Reverse_string(char *str){int len = strlen(str), i;char t;for(i = 0; i <= len \/ 2; i ++){t = str[i];str[i] = str[len - i - 1];str[len - i - 1] = t;}}int main...

C语言编程,写一个函数,使输入的一个字符串按反序存放,在主函数中输入和...
include<stdio.h> include<string.h> void printit(char *str,int length) \/\/返序输出函数 { int i;for(i=length-1;i>=0;i--) \/\/从给定的字符串的最后一位依次向前遍历各字符 putchar(*(str+i)); \/\/每向前一个字符即打印该字符,直至第一个字符为止。} int main(){ char...

C语言,编程题有一函数:满足下图的关系编写一程序,对于从键盘输入的实...
C语言实现以上分段函数,参考代码如下:include<stdio.h>#include<math.h>int main(void){double x,y;scanf("%lf",&x);if(x<0)y=fabs(x);else if(x>=10)y=8*x-1;else y=5*x-1;printf("y=%lf",y);return 0;}

南关区15959444927: c语言:编写一个函数名字为sort,完成对三个整数从小到大排序,要求用指针实现. -
卓怖氨基: 修改通过了:#include<stdio.h>void sort(int *a,int *b,int *c) { int d; if(*a>*b) // a,b,c是指针,对其解引用如*a才是他们指向的值 {d=*a;*a=*b;*b=d;} if(*a>*c) {d=*a;*a=*c;*c=d;} if(*b>*c) {d=*b;*b=*c;*c=d;} printf("这个三个数从小到大排列是:%d,%...

南关区15959444927: c语言 ,编写一个函数input(),sort(),实现数组的输入,排序. -
卓怖氨基: input()里面的输入的数据存放在数组中,只要在调用sort()的时候使用数组作为参数就可以!例如下题://从键盘输入n(1<n<=10)个数据,并对这n个数据从小到大排序#include<stdio.h> void main() { int i,n,a[10]; void input(int a[],int n); void ...

南关区15959444927: 求C语言编程编写函数sort:对数组a中的数进行从小到大排序 -
卓怖氨基: 我把数组啊设置为你自己输入,那样使用更广泛,要是固定,就就设置数组的值就可以了. #include<conio.h> main(){ int i,j,t; int a[10]; printf("please input 10 number:" ); for(i=0;i<10;i++){ scanf("%d",&a[i]); } printf("big to small\n"); for(i=0;i<...

南关区15959444927: 在c语言中运用sort函数的代码示例,最好简单,能够包含基础的知识点和基本格式 -
卓怖氨基: 好吧,来个冒泡法排序的例子;假设有一个整形数组 a[100];数据已输入;现在对其进行升序.for(int i = 0 ;i{ for(int j = i+1; j<100; j++) //取出的数和后面的每个数进行比较{ if(a[i] > a[j]) //如果 比后面的数大 {int tmp = a[i]; //两个数交换, a[i] = b[i]; b[i] = tmp; } //一遍循环把最小a[i]到a[99]中的最小的数“冒”到a[i] } }

南关区15959444927: 编写一个函数sort,实现数组元素的升序(或降序)排列. -
卓怖氨基: 编写一个函数可以实现任意长度整型数组的升序排序,最多10个元素.要求:1) int sort(int *a, int count) { int i,j,k; for(i=0;i<count;i

南关区15959444927: C语言练习{编写一个函数sort(a[],int n),使第一大在第一位,第二大在最后一位,第三大在第二位.....} -
卓怖氨基: 第五行,第八行是i+=2,不是i=+2, 第十九行是sort(a,n)不是sort(a[n],n), 第五行是i求立即采纳

南关区15959444927: C语言问题SORT函数 -
卓怖氨基: 楼上两位好像都有问题,这个函数传的是数组首地址,所以不需要返回值,for循环是需要大括号的. 改了一下: void sort(int array[],int n) { int i,j,k,temp; for(i=0;iarray[j]) k=j; temp=array[i]; array[i]=array[k]; array[k]=temp; } }

南关区15959444927: C语言编程.函数Sort()用于对参数整数数组array的元素进行由小到大的选择排序 -
卓怖氨基: #define N 10 //数组元素个数 #include"stdio.h"void sort(int array[],int n) //排序函数 {int i,j,temp;for(i=0; i for(j=i+1; j {if(array[i]>array[j]){//交换temp=array[i];array[i]=array[j];array[j]=temp;}} }void main() //主函数 {//随便输入数组值int...

南关区15959444927: C程序 sort函数
卓怖氨基: 写了两段代码,第一个是用冒泡排序法做的,第二个是快速排序法#include &lt;iostream&gt;using namespace std;//冒泡排序法template&lt;typename T&gt;void sort(T *data, int n){ int i, j; T hold; for (i = 0; i &lt; n - 1; i++) { for (j = 0; j &lt; n -1; j++) { if (...

南关区15959444927: C语言要求通过键盘输入5字符串,再调用函数sort给字符串从小到大排列,再调用print函数完成字符串输出. -
卓怖氨基: 看你代码原意,是想定义一个字符串数组strs.但是你写的char *strs[5];表示的是一个维度为5的指针数组.你可以把strs直接改成字符串数组,char strs[5][N],但你后面的函数参数类型也要跟着改.如果你不想改动其他函数,还继续使用指针数...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网