标题:关于对输入字符串排序程序的问题
只看楼主
ke3470
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-10-31
结帖率:100%
已结贴  问题点数:20 回复次数:6 
关于对输入字符串排序程序的问题
#include <stdio.h>
#include <string.h>

typedef struct wrd{
    char wrd[20];
    struct wrd *next;
}WRD;

void main(){
    char c;
    int i=0,n=1,ct;
    WRD *head,*ptrT,*ptrP,*mark;
    printf("Please input the word(use space to divide)\n");
    head = (WRD*)malloc(sizeof(WRD));
    ptrP = (WRD*)malloc(sizeof(WRD));
    head->next = ptrP;

    while((c=getchar())!=EOF){
        if(c==' '){
            ptrP->next = (WRD*)malloc(sizeof(WRD));
            if(ptrP == NULL){
                printf("error!\n");
                exit(1);
            }
            ptrP = ptrP->next;
            n++;
            i=0;        /*Q */
        }
        else{
            ptrP->wrd[i] = c;
            i++;
            ptrP->wrd[i] = '\0';
        }
    }
    ct = n;
    ptrT = head;
    mark = head;
    while(n--){
        ptrP = mark;
        ptrT = mark;

        for(i=0; i<n+1; i++){
            if(strcmp(ptrT->next->wrd,ptrP->next->wrd) > 0){
                ptrT = ptrP;
            }
            ptrP = ptrP->next;
        }
        ptrP = ptrT->next;
        ptrT->next = ptrP->next;
        ptrP->next = mark->next;
        mark->next = ptrP;
        mark = ptrP;
    }
    ptrP = head;
    for(i=0; i<ct; i++){
        printf("%s\t",ptrP->next->wrd);
        ptrP = ptrP->next;
    }

}

求问哪里出错?VS可以完成排序但是输出结果有乱码,turboC运行完全不符合要求
乱码问题解决了、、红字那边输错了
但是还有一个问题,为神马Ctrl+Z要输两次才认?


[ 本帖最后由 ke3470 于 2011-5-19 17:58 编辑 ]
搜索更多相关主题的帖子: include 字符串 word 
2011-05-19 16:34
林浩
Rank: 2
等 级:论坛游民
帖 子:47
专家分:23
注 册:2011-1-12
得分:7 
你是不是写的有些复杂了哦。
  排序不需要用到链表吧。
   
2011-05-19 17:19
ke3470
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-10-31
得分:0 
回复 2楼 林浩
如果是固定字符串数量的不用、、如果数量不定就需要了
2011-05-19 17:57
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
得分:7 
谢了这么多 辛苦啊 楼主

                                         
===========深入<----------------->浅出============
2011-05-19 20:28
ke3470
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-10-31
得分:0 
回复 4楼 laoyang103
还有一个问题、、在VS里面运行的话,EOF要输入两次才行,而且第一次还算是有效输入、、找不到原因,纠结了
2011-05-19 20:56
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
得分:7 
还没有不会链表排序

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-05-19 22:15
ke3470
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-10-31
得分:0 
结贴了、、、
2011-05-19 23:03



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




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

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