标题:我的这个程序有点问题,请高手指教一下。感激~
只看楼主
zhuweinact
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-6-19
 问题点数:0 回复次数:4 
我的这个程序有点问题,请高手指教一下。感激~
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 100

void sorted(char *line,int n)
{
    int i,j;
    char *temp,*p[N];
    for(i=0;i<n;i++)
    {
        scanf("%s",line);
        p[i]=(char*)calloc(strlen(line),1);
        strcpy(p[i],line);
    }
    for(i=1;i<n;i++)
        for(j=0;j<n-1;j++)
        {
            if(strcmp(p[j],p[j+1])>0)
            {
                temp=p[i];
                p[j]=p[j+1];
                p[j+1]=temp;
            }
            
        }
        
}

void main()
{
    
    int i,n;
    char line[N];
    
    printf("请输入n= ");
    scanf("%d",&n);
    printf("请输入%d个字符串:\n",n);
    
    
    sorted(line,n);
    printf("字符串排序后为:\n");
    //for(i=0;i<n;i++)
    printf("\n %s",line);
    
    //    printf("\n %s",line[i]);

    printf("\n");
}

字符串的排列问题,就是打印不出排列后的全部字符串。

请高手指教一下。。。qq 285847630 感激不尽。。。
搜索更多相关主题的帖子: 感激 include int 
2008-06-19 12:42
无语雨季
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2008-6-19
得分:0 
回复 1# zhuweinact 的帖子
这个程序思路有些问题的
C语言实参给形参传值,是"值传递",所以void sorted(char *line,int n)形参line指向的地址改变了,但对main函数里的实参line没有影响的.
应该这样,不过这里temp是这样定义char temp;
    if(strcmp(p[j],p[j+1])>0)
            {
                temp=*p[i];
                *p[j]=*p[j+1];
                *p[j+1]=temp;
            }
再说你开辟了内存空间也没有释放也是不良习惯.
我没有仔细去看,你自己上机运行下
实现字符串排序可以有更简单的办法.
2008-06-19 13:18
爱喝牛奶的猫咪
Rank: 1
来 自:QQ群46520219
等 级:禁止访问
帖 子:513
专家分:0
注 册:2008-6-16
得分:0 
楼上的解释也有问题



[flash=400,300]http://yzfy.[/flash][color=white]
2008-06-19 13:44
now
Rank: 1
来 自:广州
等 级:新手上路
帖 子:544
专家分:0
注 册:2007-11-9
得分:0 
可在函数sorted()内实现输出:
printf("字符串排序后为:\n");
for(i=0;i<n;i++)
puts(p[i]);

GIS
Geographic Information System
你在哪里?——》你的坐标?
2008-06-19 14:01
无语雨季
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2008-6-19
得分:0 
[bo][un]爱喝牛奶的猫咪[/un] 在 2008-6-19 13:44 的发言:[/bo]

楼上的解释也有问题



http://yzfy.

请问我说的有什么错误?向你学习
2008-06-19 17:46



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-219997-1-1.html




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

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