定义一个二维的字符串数组,然后对它进行访问排序用c语言怎么写?

 我来答
百度网友b452582
2012-03-26 · TA获得超过2581个赞
知道小有建树答主
回答量:953
采纳率:100%
帮助的人:336万
展开全部
#include <stdio.h>
#include<string.h>

main()
{ char str[10][20],temp[20];
int i,k;
/*输入字符串*/
for(i=0;i<10;i++)
{ printf("%i=d: ",i);
scanf("%s",str[i]); } /*二维数组的一维表达方式是第 i 行的首地址*/

/*为字符串排序*/
for(i=0;i<9;i++)
for(k=i+1;k<10;k++)
{ if(strcmp(str[i],str[k])==1) /*strcmp返回值为1,第一参数 大于 第二参数*/
{ strcpy(temp,str[i]); strcpy(str[i],str[k]); strcpy(str[k],temp); }
printf("i=%d k=%d\n",i,k); }
/*输出排序结果*/
for(i=0;i<10;i++)
printf("\n%s",str[i]);
system("pause");
}
班芳卑雅致
2019-06-05 · TA获得超过3962个赞
知道大有可为答主
回答量:3154
采纳率:32%
帮助的人:496万
展开全部
恩,指针也可以啊,需要的时候交换指针就可以了的,代码如下:

#include
<stdio.h>
#include
<string.h>
#include
<stdlib.h>
int
main()
{

char
*str[2][2]={"1234","5678","5563","7899"};

int
i,j;

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

{

for(j=0;j<3-i;j++)

{

if(strcmp(str[j/2][j%2],str[(j+1)/2][(j+1)%2])>0)

{

char
*t;

t=str[j/2][j%2];

str[j/2][j%2]=str[(j+1)/2][(j+1)%2];

str[(j+1)/2][(j+1)%2]=t;

}

}

}

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

{

printf("%s\n",str[i/2][i%2]);

}

system("pause");

return
0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
周鑫辉007
2012-03-30 · 超过13用户采纳过TA的回答
知道答主
回答量:110
采纳率:0%
帮助的人:36.5万
展开全部
#include "stdio.h"
#include "string.h"
int jiaohuan(const void*a,const void*b)
{
return strcmp((char *)a,(char*)b);

}
int main()
{
int n,i;
char a[100][100]={'0'};
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%s",&a[i]);
qsort(a,n,sizeof(a[0]),jiaohuan);
for(i=0;i<n;i++)
printf("%s\n",a[i]);
}

楼主接受吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
勤苦且恬静的福祉S
2012-03-25 · TA获得超过144个赞
知道小有建树答主
回答量:468
采纳率:0%
帮助的人:174万
展开全部
for(){
for(){
//数组每一个
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式