急求一道数组的问题

来源:百度知道 编辑:UC知道 时间:2024/05/27 08:50:35
由键盘输入M个最大长度为N的无空格的字符串,存入二维字符数组中,由大到小排序,最后输出。
此题怎么解啊,求叫高手们。
#include <stdio.h>
#define M 2;
void main()
{
char a[3][3],b[3][3];
int i1,i2,j1,j2;
for(i1=0;i1<=2;i1++)
{
for(j1=0;j1<=M;j1++)
{
scanf("%c",&a[i1][j1]);
}
printf("\n");
}
for(i1=0;i1<M;i1++)
{
for(i2=0;i2<3-i1;i2++)
{
for(j1=0;j1<M;j1++)
{
if(a[i2][j1]>a[i1+1][j1]) break;
else
{
if(a[i2][j1]==a[i2+1][j1]) continue;
else
{
for(j2=0;j2<=M;j2++)
{
b[i2][j2]=a[i2+1][j2];
a[i2+1][j2]=a[i2][j2];
a[i2][j2]=b[i2][j2];
}
}
}
}
}
}
for(i1=0;i<2;i++)
{
for(j1=0;j1<=M;j1++)
{
scanf("%d",&a[i1][j1]);
}
printf("\n&quo

//---------------------------------------------------------------------------

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define M 80
#define N 10

int comp(const void *a,const void *b)
{
const char *p1=a;
const char *p2=b;

return (strcmp(p2,p1));
}
int main(int argc, char* argv[])
{
char a[N][M],t[M];
int i;
for (i = 0; i<N; i++) {
gets(a[i]);
}

qsort(a,N,sizeof(char)*M,comp);

for (i = 0; i<N; i++) {
puts(a[i]);
}
system("pause");
return 0;
}
//---------------------------------------------------------------------------

*****************************************

附带程序的语法错误有二:
其一:

#define M 2;
应改为
#define M 2

其二:

for(i1=0;i<2;i++)

应改为

for(i1=0;i1<2;i1++)

把二维字