A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main ( )
{
         int i;
         int j;
         char *temp=0;
         char a[5][200];
         printf ("请输入6个字符串\n");
         for (i=0; i<6;i++)
         {
                 printf ("请输入第%d个字符串",i+1);
                 gets(a[i]);
         }
         for (i=0;i<5;i++)
         {
                 for(j=0;j<5-i;j++)
                 {
                         if (strcmp(a[i],a[i+1])>0)
                         {
                                 strcpy(temp,a[i]);
                                strcpy(a[i],a[i+1]);
                               strcpy(a[i+1],temp);
                         }
                 }
         }
         for (i=0;i<6;i++)
         {
                 printf("第%d个字符串:%s\n",i+1,a[i]);
         }



        return 0;

}


5 个回复

倒序浏览
声明了5*200的char数组却用来存储6个字符串
然后temp是个字符串指针 字符串指针的使用方法也不对。
字符串指针只能直接赋值字符串常量,如果要赋值变量 需要先申请内存空间。
回复 使用道具 举报
骗子,哎,骗我们啊
回复 使用道具 举报
你定义了一个二维数组,结果你下面用的是一维数组,而且你下面的循环也不对,应该循环5次才对,不能用嵌套for循环。还有就是你的指针用的也不正确,你用的是char类型的字符串指针,怎么可以复制为0呢
回复 使用道具 举报
Emma 发表于 2015-6-9 22:36
骗子,哎,骗我们啊

谁骗我们啊,tell  me  who
回复 使用道具 举报
围观学习啦,加油不错哦!!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马