求组解题
输入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类型的指针所以要进行强制类型转换。
----------------解决方案--------------------------------------------------------