定义一个二维的字符串数组,然后对它进行访问排序用c语言怎么写?
4个回答
展开全部
#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");
}
#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");
}
展开全部
恩,指针也可以啊,需要的时候交换指针就可以了的,代码如下:
#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;
}
#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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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]);
}
楼主接受吧
#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]);
}
楼主接受吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for(){
for(){
//数组每一个
}
}
for(){
//数组每一个
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询