| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 907 人关注过本帖
标题:这是我书上的题,我这样写,错在哪了,求高人点解
只看楼主 加入收藏
陈艺深13
Rank: 2
等 级:论坛游民
帖 子:22
专家分:11
注 册:2012-7-26
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:11 
这是我书上的题,我这样写,错在哪了,求高人点解
从键盘上输入5个字符串,从小到大排序,然后输出,排序用子函数实现;#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
    int i;
    char *str[5];void fun(char **p);
    printf("inpur 5 strings:");
    for(i=0;i<5;i++)
    scanf("%s",&str[i]);
    fun(str);
    for(i=0;i<5;i++)

    printf("%s",str[i]);
    return 0;
}
void fun(char **p)
{
    int i,j;char *str1;
    for(i=0;i<5;i++)
    {
    for(j=1;j<5-i;j++)

    if(strcmp(p[j],p[i])<0)
    str1=p[j];
    p[j]=p[i];
    p[i]=str1;
    }

}

搜索更多相关主题的帖子: fun include return 字符串 
2012-07-27 09:15
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:2 
char *str[5];
这只是定义了一个指针数组,里面只有五个指针,没有存放你输入的字符串的空间

总有那身价贱的人给作业贴回复完整的代码
2012-07-27 09:55
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
如果不是什么书上或网上流行这种代码,也不至于太多人学成这样。

授人以渔,不授人以鱼。
2012-07-27 12:35
陈艺深13
Rank: 2
等 级:论坛游民
帖 子:22
专家分:11
注 册:2012-7-26
收藏
得分:0 
回复 2楼 embed_xuel
谢谢了
2012-07-28 10:05
姻脂梦
Rank: 6Rank: 6
等 级:侠之大者
帖 子:264
专家分:424
注 册:2012-7-3
收藏
得分:1 
void fun(char **p)应事先声明
2012-07-28 16:08
暮幕悠悠
Rank: 2
等 级:论坛游民
帖 子:17
专家分:13
注 册:2012-7-21
收藏
得分:0 
学习到了~
2012-07-28 17:21
nanicesky
Rank: 2
来 自:元外元
等 级:论坛游民
帖 子:31
专家分:76
注 册:2012-1-20
收藏
得分:1 
个人觉得这个排序用不着指针吧
2012-07-28 17:31
陈艺深13
Rank: 2
等 级:论坛游民
帖 子:22
专家分:11
注 册:2012-7-26
收藏
得分:0 
回复 5楼 姻脂梦
已经申明了啊
2012-07-28 19:50
Jackie_9692
Rank: 2
等 级:论坛游民
帖 子:11
专家分:18
注 册:2012-7-21
收藏
得分:3 
void fun(char **p)
 {
     int i,j;char *str1;
     for(i=0;i<5;i++)
     {
     for(j=1;j<5-i;j++)
     if(strcmp(p[j],p[i])<0)
     str1=p[j];
     p[j]=p[i];
     p[i]=str1;
     }
 
}
 for语句和if语句作用范围,字符串可以直接=号赋值?!!!!又不是c++?!strcpy!!!
2012-07-29 11:19
LShang
Rank: 4
来 自:China
等 级:业余侠客
威 望:3
帖 子:183
专家分:258
注 册:2010-12-24
收藏
得分:2 
以下是引用Jackie_9692在2012-7-29 11:19:07的发言:

void fun(char **p)
 {
     int i,j;char *str1;
     for(i=0;i<5;i++)
     {
     for(j=1;j<5-i;j++)
     if(strcmp(p[j],p)<0)
     str1=p[j];
     p[j]=p;
     p=str1;
     }
 
}
 for语句和if语句作用范围,字符串可以直接=号赋值?!!!!又不是c++?!strcpy!!!

是给指针赋值个地址,不是你说的strcpy();
str1 = p[j];
看清楚str1和p的类型
楼主没给指针数组的指针申请空间直接就写入了,字符串说不定写到哪去了,不错都难

学如逆水行舟,不进则退
士不可以不弘毅,任重而道远
2012-07-29 11:40
快速回复:这是我书上的题,我这样写,错在哪了,求高人点解
数据加载中...
 
   



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

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