程序填空题:指针数组-字符串排序
在主函数中输入6个字符串,调用另一个函数func对他们按从小到大的顺序排序,然后输出这已经排好序的字符串。
要求使用指针数组进行处理。
```c++
#include
#include
void func(char **str);
int main(void)
{
int i;
char s[6][1024], *pStr[6];
for (i=0; i<6; i++)
{
gets(s[i]);
pStr[i] = s[i];
}
@@[func(pStr);](2)
//输出排序后的结果
for (i=0; i<6; i++)
{
@@[puts(pStr[i]);](2)
}
return 0;
}
void func(char **str)
{
int i, j;
char *temp;
for (i=0; i<5; i++)
{
for (j=i+1; j<6; j++)
{
if (@@[strcmp(str[i],str[j]) > 0](2))
{
temp = *(str+j);
*(str+j) = *(str+i);
*(str+i) = temp;
}
}
}
}
```
答案:
第1空:func(pStr);
第2空:puts(pStr[i]);
第3空:strcmp(str[i],str[j]) > 0
要求使用指针数组进行处理。
```c++
#include
#include
void func(char **str);
int main(void)
{
int i;
char s[6][1024], *pStr[6];
for (i=0; i<6; i++)
{
gets(s[i]);
pStr[i] = s[i];
}
@@[func(pStr);](2)
//输出排序后的结果
for (i=0; i<6; i++)
{
@@[puts(pStr[i]);](2)
}
return 0;
}
void func(char **str)
{
int i, j;
char *temp;
for (i=0; i<5; i++)
{
for (j=i+1; j<6; j++)
{
if (@@[strcmp(str[i],str[j]) > 0](2))
{
temp = *(str+j);
*(str+j) = *(str+i);
*(str+i) = temp;
}
}
}
}
```
答案:
第1空:func(pStr);
第2空:puts(pStr[i]);
第3空:strcmp(str[i],str[j]) > 0