凌晨四点发现问题,希望得到解答
在主函数中输入10个等长的字符串。用另一个函数对它们排序。然后在主函数输出这个已排好序的字符串// 11.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include<stdio.h>
#include<string.h>
void sort(char (*s)[6])
{
int i,j;
char temp[6],*t=temp;
for(i=0;i<9;i++)
{
for(j=0;j<9-i;j++)
{
if(strcmp(s[j],s[j+1])>0)
{
strcpy(t,s[j]);
strcpy(s[j],s[j+1]);
strcpy(s[j+1],t);
}
}
}
}
int main(int argc, char* argv[])
{
int i;
char str[10][6];
char (*p)[6];
printf("input 10 string:\n");
for(i=0;i<10;i++)
{
scanf("%s",str[i]);//明明是二维数组,怎么能是一维数组呢?
}
p=str;//P代表的是二维数组的地址
sort(p);//形参是一维数组指针,实参怎么能是二维数组指针呢?
printf("Now,the sequence is:\n");
for(i=0;i<10;i++)
{
printf("%s\n",str[i]);//还有这里也是
}
return 0;
}
以上的问题,相信很多初学者都想知道,都感到困惑,不清楚,希望大家能好好给说一说!谢谢啦!