网站建设资讯

NEWS

网站建设资讯

c语言函数二维排序 c语言函数排序一维数组

用C语言写一个函数对一个字符型二维数组排序,要求排列时根据字符多少由小到大排列

C语言版,C99标准

专注于为中小企业提供成都网站制作、成都网站建设、外贸营销网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业大邑县免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了近千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

==========

#includestdio.h

#includestdlib.h

#includestring.h

int icomp(const void* pa, const void* pb){

char *a=(char*)*((char**)pa), *b=(char*)*((char**)pb);

int c;

while(*a || *b){

if(c=tolower(*a)-tolower(*b)) return c;

a++; b++;

}

return (c=tolower(*a)-tolower(*b))?c:0;

}

int main(int argc,char *agv[] )

{

char *str[]={"My", "At", "so", "you", "You", "how"};//等同与str[0]...[1]等等

int i,len=sizeof(str)/sizeof(char*);

qsort(str,len,sizeof(char*),icomp);

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

printf("%d. %s\n",i, str[i]);

return 0;

}

=============

0. At

1. how

2. My

3. so

4. You

5. you

C++11版,也没能化简

==========

#includeiostream

#includealgorithm

#includecstring

using namespace std;

int main(int argc,char *agv[] )

{

char *str[]={

"My","At","so","you","You","how"

};

int i,len=sizeof(str)/sizeof(char*);

sort(str,str+len,

[](string a,string b)-int{

string la(a),lb(b);

transform(a.begin(),a.end(),la.begin(),::tolower);

transform(b.begin(),b.end(),lb.begin(),::tolower);

int r=la.compare(lb);

return r?r0:a.compare(b)0;

}

);

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

printf("%d. %s\n",i, str[i]);

return 0;

}

c语言 用子函数编辑二维数组的输入 输出 排序 逆序

//December 10,2014 By 12952010

#includestdio.h

#define row 3

#define column 3

int sort(int array[][column]){//冒泡排序 

int temp,j,i;

int arr[row*column];

int k=0;

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

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

arr[k++]= array[i][j];

}

for(i=0;irow*column-1;i++)

  for(j=0;jrow*column-i-1; j++)

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

     temp=arr[j];

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

     arr[j+1]=temp;

    }

for(i=0 ,k=0; irow; i++)

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

array[i][j]=arr[k++];

}

}

void show(int array[][column] ){//显示数组元素 

for( int  i=0 ; i row; i++ ) {

printf("\n");

for(int j=0; jcolumn; j++){

printf("  %4d ",array[i][j]);

}

}

}

void display(int array[][column]){//逆序输出

for(int i=row-1;i=0;i--){

printf("\n");

for(int j=column-1;j=0;j--) 

printf("  %4d ",array[i][j]);

}

 

}

void setting(int array[][column]){//初始化数组 

int temp=10;

for( int  i=0; irow; i++ ){

for( int j=0; jcolumn; j++)

array[i][j]=temp--;

}

}

int main(){

int array[row][column];

setting(array);

printf("\n\n-------Befor sort---------\n");

show(array);

printf("\n\n-------逆序输出---------\n");

display(array);

printf("\n\n-------After sort---------\n");

sort(array);

show(array);

return 0;

}

用C语言写一个函数 于给定的二维数组 将其按下面的例子排序

参考:

#includeiostream

using namespace std;

int main()

{

int array[3][4]={{2,5,15,10},{13,24,3,6},{9,16,7,11}};

int b,temp,i,j=0,k=0,n=0,m=0;

int a[12],flag=0;

cout"排序前的数组:"endl;

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

{

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

coutarray[i][j]" ";

coutendl;

}

cout"排序后的数组:"endl;

for(i=0;i3;i++)//将一直数组存入一个一维数组中,在一维数组中先排好序从大到小

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

{

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

k++;

}

for(k=0;k12;k++)

{

for(i=k+1;i12;i++)

if(a[k]a[i])

{

temp=a[k];

a[k]=a[i];

a[i]=temp;

}

}

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

{

switch(flag)//当flag=0时从上到下存回原数组, flag=1 时从下到上存储

{

case 0: for(n=0;n3;n++)

{

array[n][j]=a[m];

m++;

}

flag=1;break;

case 1: for(n=2;n=0;n--)

{

array[n][j]=a[m];

m++;

}

flag=0;break;

default:break;

}

}

for(i=0;i3;i++)//输出排好序的数组

{

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

coutarray[i][j]" ";

coutendl;

}

system("pause");

}

用c++编的


文章题目:c语言函数二维排序 c语言函数排序一维数组
分享网址:http://cdweb.net/article/docpjhh.html