| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1012 人关注过本帖
标题:程序不能执行
只看楼主 加入收藏
夏日清风
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:71
专家分:126
注 册:2010-4-16
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:10 
程序不能执行
对10个等长的字符串排序
编译没错误,但不能执行,请高手指点。
#include<stdio.h>
#include<string.h>
void main()
{
    void px(char *p[],int n);
    char *a[10];
    int i;
    for(i=0;i<10;i++)
    {
            printf("请输入一个字符串");
            scanf("%s",&a[i]);
    }
    px(a,10);
    for(i=0;i<10;i++)
    {
            printf("%s",a[i]);
    }
}
void px(char *p[],int n)
{
    char *temp;
    int i,j;
    for(j=0;j<n-1;j++)
    {
        for(i=0;i<n-1-j;i++)
        {
            if(strcmp(p[i],p[i+1])>0)
            {
                temp=p[i];
                p[i]=p[i+1];
                p[i+1]=temp;
            }
        }
    }
}
搜索更多相关主题的帖子: void include 字符串 
2010-05-27 21:19
zhanfffmmm
Rank: 5Rank: 5
等 级:职业侠客
帖 子:238
专家分:343
注 册:2009-10-16
收藏
得分:5 
#include<stdio.h>
#include<string.h>
void main()
{
    void px(char *p[],int n);
    char *a[10];
    int i;
    for(i=0;i<10;i++)
    {

            gets(a[i]);
    }
    px(a,10);
    for(i=0;i<10;i++)
    {
            puts(a[i]);
    }

    getch();
}
void px(char *p[],int n)
{
    char temp[10];
    int i,j;
    for(j=0;j<n-1;j++)
    {
        for(i=j;i<n;i++)

            if(strcmp(p[j],p[i])>0)
            {
                strcpy(temp,p[i]);
                strcpy(p[i],p[j]);
                strcpy(p[j],temp);
            }

    }

}

[ 本帖最后由 zhanfffmmm 于 2010-5-27 21:52 编辑 ]
2010-05-27 21:51
夏日清风
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:71
专家分:126
注 册:2010-4-16
收藏
得分:0 
回复 2楼 zhanfffmmm
谢谢,不过还是有错误呀,请指正。
2010-05-27 22:03
caoweidong
Rank: 2
等 级:论坛游民
帖 子:15
专家分:11
注 册:2010-5-27
收藏
得分:0 
temp指针没有分配内存空间,可以采用malloc为其动态分配和*p[]大小一样的空间,最好要记得free(temp)
2010-05-27 22:04
caoweidong
Rank: 2
等 级:论坛游民
帖 子:15
专家分:11
注 册:2010-5-27
收藏
得分:0 
对了,在px函数中,先求一下p的长度,再为temp分配空间
2010-05-27 22:06
zhuyunshen
Rank: 6Rank: 6
等 级:侠之大者
威 望:2
帖 子:212
专家分:455
注 册:2009-11-22
收藏
得分:0 
fdsa
2010-05-27 22:10
zhanfffmmm
Rank: 5Rank: 5
等 级:职业侠客
帖 子:238
专家分:343
注 册:2009-10-16
收藏
得分:2 
不能运行,什么编译器啊。给你简单试试:     #include"stdio.h"
     #include"string.h"

     main()
     {
            char s[100];
         char b[5][100];
         int i,j;
         for(i=0;i<5;i++)
         {
             gets(b[i]);
             }

         for(i=0;i<4;i++)
         for(j=i;j<5;j++)
         {
                if(strcmp(b[i],b[j])>0)
                {
                     strcpy(s,b[j]);
                     strcpy(b[j],b[i]);
                     strcpy(b[i],s);
                    }

            }
              printf("\n");
             for(i=0;i<5;i++)
             {
                 puts(b[i]);
                 }

         }

[ 本帖最后由 zhanfffmmm 于 2010-5-27 22:18 编辑 ]
2010-05-27 22:17
夏日清风
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:71
专家分:126
注 册:2010-4-16
收藏
得分:0 
回复 7楼 zhanfffmmm
我用VC++的,就是不知道我的程序错哪了。你这个可以,谢谢!
2010-05-27 22:24
bccn250
Rank: 5Rank: 5
等 级:职业侠客
帖 子:154
专家分:379
注 册:2010-5-25
收藏
得分:5 
看了4楼的回复,自己也试了一下,的确是未分配空间,不过好像要更早

在输入10个字符串的时候,就要给a[i]分配空间了,下面是我的代码
虽然前面的问题解决了,但是我自己的问题却来了,用delete释放空间时不知道出问题,即使用4楼说的malloc分配空间,但用free释放的时候也会出现同样的问题,是怎么回事??难道不应该为指针数组的元素分配空间吗???

程序代码:
#include<stdio.h>
#include<string.h>
void main()
{
    void px(char *p[],int n);
    char *a[10];
    int i;
    for(i=0;i<10;i++)
    {
        char chs[20];    \\改过
            printf("请输入一个字符串");
            scanf("%s",&chs);    \\改过
            a[i]=new char[strlen(chs)];    \\改过
            strcpy(a[i],chs);    \\改过
    }
    px(a,10);
    for(i=0;i<10;i++)
    {
        printf("%s",a[i]);
    }
    for(int j=0;j<10;j++)    \\改过 我自己有问题的部分
    {
        delete [] a[j];
    }
}
void px(char *p[],int n)
{
    char *temp;
    int i,j;
    for(j=0;j<n-1;j++)
    {
        for(i=0;i<n-1-j;i++)
        {
            if(strcmp(p[i],p[i+1])>0)
            {
                temp=p[i];
                p[i]=p[i+1];
                p[i+1]=temp;
            }
        }
    }
}

2010-05-28 01:46
夏日清风
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:71
专家分:126
注 册:2010-4-16
收藏
得分:0 
呵呵,望大家继续帮忙,
2010-05-28 12:00
快速回复:程序不能执行
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021658 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved