当前位置: 代码迷 >> C语言 >> 求组解题
  详细解决方案

求组解题

热度:134   发布时间:2006-01-20 22:25:00.0
求组解题

输入4个人的英文单词,然后按照字母顺序,将他们排序从大到小。
比如输入 has
seen
alice
won
输出为: alice
has
seen
wonderland
(提示使用:1个1维字符数组,1个2维字符数组,strcmp()函数,循环)


这道题目怎么做!!

搜索更多相关的解决方案: 解题  

----------------解决方案--------------------------------------------------------
建立一个char t[4][n]的数组,每一个t[][n]储存一个词,先比较首字母,也就是t[m][0],不同的话交换(整体冒泡)。相同的话比较后面的字母。如果是作业的话还是自己写出来比较好。
----------------解决方案--------------------------------------------------------

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void main()
{
char *p[4];
int i,j;

for(i=0;i<4;i++)
{p[i]=(char*)malloc(20*sizeof(char));
scanf("%s",p[i]);}


char temp[20];
for(i=0;i<3;i++)
for(j=i+1;j<4;j++)
if(strcmp(p[j],p[i]))
{strcpy(temp,p[i]);
strcpy(p[i],p[j]);
strcpy(p[j],temp);}

for(i=0;i<4;i++)
printf("%s\n",p[i]);

}


----------------解决方案--------------------------------------------------------
p[i]=(char*)malloc(100*sizeof(char));这句什么意思  
----------------解决方案--------------------------------------------------------

----------------解决方案--------------------------------------------------------
谁能解释一下啊,我也想知道p[i]=(char*)malloc(100*sizeof(char));是什么意思
为什么没有这一句的时候就输出错误?
----------------解决方案--------------------------------------------------------
p[i]=(char*)malloc(100*sizeof(char));

这句话应该是调用malloc函数向内存申请100*sizeof(char)也就是100字节的空间并把这个空间的首地付给字符型的指针p[i]

应该是这样的

因为malloc函数返回的是void类型的指针所以要进行强制类型转换。
----------------解决方案--------------------------------------------------------
  相关解决方案