急求一道数组的问题
来源:百度知道 编辑: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>
#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++)
把二维字