黑马程序员技术交流社区

标题: 没有错误,也没有警告,运行的时候有问题,求大神 [打印本页]

作者: 大悟云    时间: 2015-6-9 13:34
标题: 没有错误,也没有警告,运行的时候有问题,求大神
#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;

}



作者: 晗修    时间: 2015-6-9 15:08
声明了5*200的char数组却用来存储6个字符串
然后temp是个字符串指针 字符串指针的使用方法也不对。
字符串指针只能直接赋值字符串常量,如果要赋值变量 需要先申请内存空间。

作者: Emma    时间: 2015-6-9 22:36
骗子,哎,骗我们啊
作者: 白0702    时间: 2015-6-10 08:26
你定义了一个二维数组,结果你下面用的是一维数组,而且你下面的循环也不对,应该循环5次才对,不能用嵌套for循环。还有就是你的指针用的也不正确,你用的是char类型的字符串指针,怎么可以复制为0呢
作者: 小龙女的萝卜    时间: 2015-6-10 09:48
Emma 发表于 2015-6-9 22:36
骗子,哎,骗我们啊

谁骗我们啊,tell  me  who
作者: 这是829    时间: 2015-6-11 22:16
围观学习啦,加油不错哦!!!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2