hjn_jenny 2017-11-20 06:21 采纳率: 28.6%
浏览 1658

输入任意个英文字符串,按字符串长度由大到小顺序输出,结果字符串全都和原来输入的不一样

#include
#include
#include
int main()
{
int i,k,answer=0,count=0;
printf("请输入谚语:");
char array=(char)malloc(20*sizeof(char));
char temp[50];
char p=temp;
if(!array)
printf("分配内存失败!");
for(i=0;i<20;i++)
{array[i]=(char
)malloc(50*sizeof(char));
if(!array[i])
printf("分配内存失败!");}
i=0;
do{gets(*array+i);
i=i+1;
count++;
printf("继续输入(0),不再输入(1)");
scanf("%d",&answer);
getchar();

}while(answer==0);
for(i=0;i<count-1;i++)
for(k=0;k<count-1-i;k++)
if(sizeof(array[k])>sizeof(array[k+1]))
{*p=**(array+k);
**(array+k)=**(array+k+1);
**(array+k+1)=*p;

}
for(i=0;i<count;i++)
printf("%s\n",*array+i);
free(array);
return 0;

}

  • 写回答

3条回答 默认 最新

  • 金羊座 2017-11-20 08:25
    关注

    char array=(char)malloc(20*sizeof(char));
    你这个arry是一个字符,一个字节,后面(char)malloc(20*sizeof(char));是把一个指针八个或者四个字节转换成一个字节的char用一个字节去保存,能不出错就怪了

    评论

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料